我有一个状态列表选择器,可以在按下/聚焦时为我的ImageView提供不同的背景颜色:
<!--lightbutton_selector.xml -->
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true"
android:drawable="@drawable/lightbutton_pressed"/>
<item android:state_pressed="true"
android:drawable="@drawable/lightbutton_pressed"/>
<item android:drawable="@drawable/lightbutton_default"/>
</selector>
个别国家看起来像这样:
<!--lightbutton_pressed.xml-->
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/yellow" />
</shape>
如果我在XML中将其设置为
,则可以正常工作<ImageView
android:background="@drawable/lightbutton_selector"
...
但是现在我连续使用了几个不同颜色的按钮:
其背景应根据选择器而改变,即如果我按下最右边的那个:
我的目标是在XML中指定按钮的不同颜色和状态选择器。 如果不为每种颜色的红色,绿色,灰色创建一个新的选择器,这是否可行?
我通常会设置这样的颜色,这显然会覆盖背景选择器:
<ImageView
android:background="@color/negative"
...
我尝试了什么(失败了):
1.选择时颜色变为黄色但未设置默认颜色
<ImageView
app:srcCompat="@drawable/ic_share"
android:drawable="@color/grey"
android:background="@drawable/lightbutton_selector"
...
2.Vice-Versa:设置了默认颜色,但选择器不会改变
<ImageView
app:srcCompat="@drawable/ic_share"
android:background="@color/grey"
android:drawable="@drawable/lightbutton_selector"
...
3.色调适用于所有颜色,因此选择颜色为灰色,而不是黄色
<ImageView
app:srcCompat="@drawable/ic_share"
android:backgroundTint="@color/grey"
android:background="@drawable/lightbutton_selector"
...