我有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>
答案 0 :(得分:0)
将按钮的色调颜色(XML中的android:backgroundTint
属性)设置为其未选择的颜色。
然后在按钮的onClick方法中执行此操作以将按钮的色调颜色更改为其选定状态:
//将按钮的背景色调颜色设置为其选定的状态颜色 button.setBackgroundTintList(ContextCompat.getColorStateList(this,selectedIntColour));