更改按钮的背景颜色,并保持图标(图像)当用户按下它
问题描述:
我有20个不同的图标按钮(图像)我需要改变按钮的背景颜色,当我点击(按),并保持背景图标(图)更改按钮的背景颜色,并保持图标(图像)当用户按下它
我需要的东西,并不需要做出选择每个按钮,因为所有的按钮都应该有相同的背景颜色(正常和选择),只有不同的图标
我发现这个概念,但使用它将需要选择每个按钮
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item>
<bitmap android:gravity="center" android:src="@drawable/bm_btn_background" android:tileMode="repeat" />
</item>
<item>
<shape>
<gradient android:angle="270" android:endColor="#a0e0b071" android:startColor="#a0a67637" />
<stroke android:width="1dp" android:color="#5c3708" />
<corners android:radius="5dp" />
<padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
</shape>
</item>
</layer-list>
</item>
<item android:state_enabled="true">
<layer-list>
<item>
<bitmap android:gravity="center" android:src="@drawable/bm_btn_background" android:tileMode="repeat" />
</item>
<item>
<shape android:shape="rectangle">
<gradient android:angle="270" android:endColor="#a0a67637" android:startColor="#a0e0b071" />
<stroke android:width="1dp" android:color="#5c3708" />
<corners android:radius="5dp" />
<padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
</shape>
</item>
</layer-list>
</item>
</selector>
答
将按钮的色调颜色(XML中的android:backgroundTint
属性)设置为其未选中的颜色。
然后,在按钮的onClick方法执行这对按钮的色调颜色改变为选中状态:
//按钮的背景色调颜色设置为选中状态的颜色 button.setBackgroundTintList(ContextCompat.getColorStateList(此,selectedIntColour));