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预渲染方法发现了一些很酷的效果

这是通过分层完成的