在单击/按下颜色时更改 Android 按钮:
定义颜色值
要定义颜色值,您必须在项目值目录中创建 colors.xml 文件并添加以下内容。res/values/colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="button_pressed">#ff8a00</color>
<color name="button_focused">#ff8a00</color>
<color name="button_default">#1c76bb</color>
</resources>
在 Drawable 目录中创建一个 XML 文件
在您的可绘制文件夹中创建一个 button_background.xml 文件,并添加按钮按下/单击、聚焦和默认颜色。button_background.xml 文件的最终代码如下所示。res/drawable/button_background.xml
<?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"/> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@color/button_focused"/> <!-- focused -->
<item android:drawable="@color/button_default"/> <!-- default -->
</selector>
添加按钮
res/activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/button_background"
android:text="Click Me"
android:textColor="#fff" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_marginTop="16dp"
android:background="@drawable/button_background"
android:text="Click Me"
android:textColor="#fff" />
</RelativeLayout>
来源在这里。