Android在点击时更改背景颜色

2022-09-21 00:00:00 android android-button
我正在尝试更改Button的背景颜色当它被单击时,我可以在按下Button时更改背景颜色当我松开Button按钮返回其默认颜色时。我不知道从哪里开始我一直在努力寻找解决这个问题的办法。

`

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="com.example.game.dice.MainActivity">

    <Button
        android:id="@+id/but1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 1"
        android:background="@drawable/button_color"
        />
    <Button
        android:id="@+id/but2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 2"
        android:background="@drawable/button_color"/>
</LinearLayout>

`

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
    android:drawable="@color/button_pressed"/>
<item android:state_focused="true"
    android:drawable="@color/button_focused"/> 
<item android:drawable="@color/button_default"/> 
</selector>

解决方案

这是因为默认情况下,当触摸按钮时,它将接受单击而不是焦点。如果您希望按钮成为焦点并在按下时更改其颜色,请将此代码添加到XML语言中的按钮。

android:focusableInTouchMode="true"

相关文章