【需求说明】
对于界面上的按钮,背景可以按照不同状态(正常态和Pressed态)显示不同的背景图片,同时按钮上的文本可以根据不同状态(正常和Pressed态)显示不同的颜色。
【实现说明】
原理: Android开发中自带Selector选择器,选择器可以根据不同的状态设置不同的背景图片或者文字颜色。
步骤:
1. 添加资源文件(mipmap文件夹xxhdpi)中加入button对应的两张图片(btn_status_normal.png 和 btn_status_pressed.png)
2. 在drawable文件中新建resource文件(其实就是新建一个selector文件,button_status_selector.xml)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/btn_status_normal" android:state_pressed="false"/>
<item android:drawable="@mipmap/btn_status_pressed" android:state_pressed="true"/>
</selector> 3. 在drawable文件夹中新建text color selector文件,text_color_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#57565D" android:state_pressed="false"/>
<item android:color="#FFFFFF" android:state_pressed="true"/>
</selector>4. 在需要添加选择状态的button中添加selector动作。
<Button
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_centerInParent="true"
android:focusable="true"
android:background="@drawable/button_status_selector"
android:textColor="@drawable/text_color_selector"
android:text="测试按钮"
android:textSize="14sp"
/>【效果展示】
【扩展训练】
既然文字pressed态有了不同颜色,当然也可以支持button的disable态(button禁用态)等状态了,读者可以自行尝试。
本文介绍如何使用Android的Selector选择器来实现按钮不同状态下的背景图片和文字颜色的变化,包括正常态、Pressed态,并提供实现步骤及示例代码。
2005

被折叠的 条评论
为什么被折叠?



