如何在XML中实现ImageButton按下后切换图标色调?
解决方案
要完全通过XML实现ImageButton按下时切换图标色调,只需两步操作:
1. 创建颜色状态选择器
在res/color目录下新建btn_icon_tint.xml(如果没有color目录,手动创建即可),代码如下:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 按钮按下时的图标色调 --> <item android:color="@color/mirage" android:state_pressed="true"/> <!-- 按钮默认状态的图标色调 --> <item android:color="@color/ship_cove"/> </selector>
2. 修改ImageButton的tint属性
将原ImageButton中固定的tint值替换为刚创建的颜色选择器:
<ImageButton android:id="@+id/stop_button" android:layout_width="0dp" android:layout_height="0dp" android:src="@drawable/stop_icon" android:background="@drawable/stop_button" android:tint="@color/btn_icon_tint" <!-- 替换为颜色选择器 --> app:layout_constraintBottom_toTopOf="@id/bottom_icon_guideline" app:layout_constraintLeft_toRightOf="@id/start_icon_guideline" app:layout_constraintRight_toLeftOf="@id/end_icon_guideline" app:layout_constraintTop_toBottomOf="@id/mediatop_icon_guideline" />
设置完成后,按钮未按下时图标显示@color/ship_cove颜色,按下时自动切换为@color/mirage,全程无需编写Java/Kotlin代码,完全通过XML实现需求。
内容的提问来源于stack exchange,提问作者Guilherme Hepfener
相关产品推荐
相关产品推荐

