Не меняется цвет кнопки(созданной через .xml) при нажатии. А когда создаю кнопку она у меня фиолетовая пробывал через background и через backgroundTint она розовая. А когда хочу нажать не нажимается. Что делать?
Вот код стиля не нажатой кнопки:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp"
android:color="@color/black95"/>
<corners android:radius="20dp"/>
</shape>
Вот код стиля нажатой кнопки:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp"
android:color="@color/black95"/>
<corners android:radius="20dp"/>
<solid android:color="@color/white"/>
</shape>
Вот код объединение этих стилей:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/style_btn_stroke_black95"/>
<item android:state_pressed="false"
android:drawable="@drawable/style_btn_stroke_black95_press_white"/>
</selector>
Вот код файла activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:id="@+id/main_background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/main_background" />
<ImageView
android:id="@+id/main_img_boy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:layout_marginStart="50dp"
android:layout_marginEnd="50dp"
android:layout_marginBottom="200dp"
android:src="@drawable/main_img_boy" />
<LinearLayout
android:id="@+id/startLayout"
android:layout_width="wrap_content"
android:layout_height="75dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:padding="10dp"
android:orientation="horizontal">
<Button
android:id="@+id/buttonStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/button_stroke_black95_press_white"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="@string/start"
android:textColor="@color/black95"
android:textSize="24sp" />
</LinearLayout>
</RelativeLayout>
Вот код из файла colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="black95">#95000000</color>
<color name="white">#ffffff</color>
<color name="black60">#60000000</color>
<color name="blue">#49d1ff</color>
</resources>
Вот файл strings.xml
<resources>
<string name="app_name">Quiz2</string>
<string name="start">Начать</string>
<string name="back">Назад</string>
</resources>
Вот код файла MainActivity.java
package com.yura.quiz2;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private long backPressedTime;
private Toast backToast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button buttonStart = (Button) findViewById(R.id.buttonStart);
buttonStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
Intent intent = new Intent(MainActivity.this, GameLevels.class);
startActivity(intent);finish();
}catch (Exception e) {
}
}
});
Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
@Override
public void onBackPressed() {
if (backPressedTime + 2000 > System.currentTimeMillis()){
backToast.cancel();
super.onBackPressed();
return;
}else{
backToast = Toast.makeText(getBaseContext(),"Нажмите еще раз, чтобы выйти", Toast.LENGTH_LONG);
backToast.show();
}
backPressedTime = System.currentTimeMillis();
}
}