Android 使用颜色状态列表着色ImageView图像资源(png)
当我使用“可绘制选择器”(指向预渲染的备用图像)时,使用颜色状态列表对Android 使用颜色状态列表着色ImageView图像资源(png),android,performance,android-layout,xamarin.android,Android,Performance,Android Layout,Xamarin.android,当我使用“可绘制选择器”(指向预渲染的备用图像)时,使用颜色状态列表对ImageView按钮上色时,我不会得到与使用“可绘制选择器”时相同的行为 当点击按钮时,没有任何颜色变化,当按住一两秒钟时,确实会发生颜色变化,但有时仅在图标的下半部分 注意:我只是想让按钮改变颜色,而不是整个背景,这样它在触摸时就会发光(无需在编辑器中对其进行预着色) 注意:我意识到这些图标是旧的,不是来自新的材质集,但我现在还不能使用它们 resource/drawable/ic\u menu\u my\u calend
ImageView
按钮上色时,我不会得到与使用“可绘制选择器”时相同的行为
当点击按钮时,没有任何颜色变化,当按住一两秒钟时,确实会发生颜色变化,但有时仅在图标的下半部分
注意:我只是想让按钮改变颜色,而不是整个背景,这样它在触摸时就会发光(无需在编辑器中对其进行预着色)
注意:我意识到这些图标是旧的,不是来自新的材质集,但我现在还不能使用它们
resource/drawable/ic\u menu\u my\u calendar.png
resource/color/calendar\u btn\u color\u state\u list.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#A0AA3355"/>
<item android:state_selected="true" android:color="#A0AA3355"/>
<item android:state_checked="true" android:color="#A0AA3355"/>
<item android:color="#FFAAAAAA"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/ic_menu_my_calendar_pressed"/>
<item android:drawable="@drawable/ic_menu_my_calendar"/>
</selector>
下面给出了我希望实现的上述行为。 resource/drawable/calendar\u btn\u selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#A0AA3355"/>
<item android:state_selected="true" android:color="#A0AA3355"/>
<item android:state_checked="true" android:color="#A0AA3355"/>
<item android:color="#FFAAAAAA"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/ic_menu_my_calendar_pressed"/>
<item android:drawable="@drawable/ic_menu_my_calendar"/>
</selector>
更新
使用GIMP预渲染方法发现了一些很酷的效果
这是通过分层完成的