@ilyanovik

Как изменить фон кнопки при касании?

Как в Android Studio изменить фон кнопки при касании? Я в этом деле новичок, поэтому, пожалуйста, объясните подробно.
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
Rebel-Cat
@Rebel-Cat
public class MainActivity extends AppCompatActivity {

    Button button;   //создаем кнопку

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button12);  //ссылаемся на id кнопки из лайаут

        final int[] colors = getResources().getIntArray(R.array.colors);   //создаем массив из color массива xml

        button.setOnClickListener(new View.OnClickListener() {     //ставим слушателя на кнопку, реагирует на косание

            @Override
            public void onClick(View v) {  //переопределяем метод
                final int randomColor = colors[new Random().nextInt(colors.length)];  //присваиваем переменной случайный цвет из массива
                button.setBackgroundColor(randomColor);  // ставим цвет на кнопку

            }
        });
    }
}


Лайаут

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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">

    <Button
        android:id="@+id/button12"
        android:layout_width="300dp"
        android:layout_height="100dp"
        android:text="Button"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.495"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.432" />

</androidx.constraintlayout.widget.ConstraintLayout>


в colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#6200EE</color>
    <color name="colorPrimaryDark">#3700B3</color>
    <color name="colorAccent">#03DAC5</color>

    <item name="blue" type="color">#FF33B5E5</item>
    <item name="purple" type="color">#FFAA66CC</item>
    <item name="green" type="color">#FF99CC00</item>
    <item name="orange" type="color">#FFFFBB33</item>
    <item name="red" type="color">#FFFF4444</item>
    <item name="darkblue" type="color">#FF0099CC</item>
    <item name="darkpurple" type="color">#FF9933CC</item>
    <item name="darkgreen" type="color">#FF669900</item>
    <item name="darkorange" type="color">#FFFF8800</item>
    <item name="darkred" type="color">#FFCC0000</item>

<integer-array name="colors">
<item>@color/blue</item>
<item>@color/purple</item>
<item>@color/green</item>
<item>@color/orange</item>
<item>@color/red</item>
<item>@color/darkblue</item>
<item>@color/darkpurple</item>
<item>@color/darkgreen</item>
<item>@color/darkorange</item>
<item>@color/darkred</item>
</integer-array>

    </resources>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы