我有以下图像选择器。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:state_pressed="true">
<bitmap android:src="@drawable/ic_sort_by_alpha_white_24dp"
app:tint="@color/colorPrimaryLight" />
</item>
<item>
<bitmap android:src="@drawable/ic_sort_by_alpha_white_24dp"
app:tint="@color/greyIconColorLight" />
</item>
</selector>
我以下列方式使用它。
<android.support.v7.widget.AppCompatImageView
android:id="@+id/image_view"
android:paddingStart="24dp"
android:paddingLeft="24dp"
android:paddingEnd="16dp"
android:paddingRight="16dp"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:src="@drawable/label_icon_selector" />
着色效果在API 26中有效。
但是,在旧的API(API 15)中,着色效果不起作用
我认为拥有app:tint
并使用AppCompatImageView
可以使我实现向后兼容吗?
我可以知道我错过了哪一步吗?
答案 0 :(得分:0)
也尝试指定tintMode。
如果无法使用,请改用颜色状态列表。
这是一个演示。
selector_color_icon.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="@color/@colorPrimaryLight" />
<item android:state_pressed="false"
android:color="@color/greyIconColorLight" />
</selector>
用法:
<android.support.v7.widget.AppCompatImageView
....
app:tint="@color/selector_color_icon"
....
/>