StateListDrawable是Drawable资源的一种,可以根据不同的状态,设置不同的图片效果,关键节点 < selector >,我们只需要将Button的background属性设置为改drawable资源即可轻松实现,按下按钮时不同的按钮颜色或背景。
实现效果如图:默认状态下为黑色关闭飞行模式状态,按下时为青色飞行模式状态。
在一、二、三中,未操作.java
文件,都是在操作.xml文件
,所谓xml负责布局,java负责后台逻辑嘛。
一、Drawable资源的使用
首先按照下图修改,否则按钮的背景颜色不会变化(老版本没问题,在版本29后就不行,需要修改。)
(1)新建一个图片选择器
命名
导入两张draw图片到drawable文件夹中,
(2)设置按键不同状态效果
在刚才创建的Drawable文件btn_selector_pic.xml
中:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_baseline_airplanemode_active_24" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_baseline_airplanemode_inactive_24"/>
</selector>
代码解析:
(3)在main.xml中引用
然后在activity_main.xml
中引用:android:background="@drawable/btn_selector_pic"
,如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/and