选项卡图标:我的现有方法是创建两个文件(ic_list_selected_24dp.xml和ic_list_unselected_24dp.xml;它们基本相同,但只有android:fillColor='Color HEX CODE'
不同),然后创建一个选择器(selector_tabitem_list.xml)在状态改变时更改可绘制颜色。
// @drawable/selector_tabitem_list.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:drawable="@drawable/ic_list_selected_24dp"
android:state_selected="true" />
<item android:drawable="@drawable/ic_list_unselected_24dp"
android:state_selected="false" />
</selector>
由于两个可绘制对象相同,因此有点重复。
矢量可绘制对象中无法使用选择器。
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@drawable/selector"
android:pathData="M19,3...."
</vector>
--
// @drawable/selector
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<color android:color="@color/itemSelected" />
</item>
<item android:state_selected="false">
<color android:color="@color/itemUnselected" />
</item>
</selector>
并且不要翻译android:fillColor="@color/state"
。
// @color/state
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/white" android:state_selected="true" />
<item android:color="@android:color/black" android:state_selected="false" />
</selector>
有没有办法使用一个Drawable并动态更改它的颜色?使用硬编码十六进制代码是否更好?谢谢。
android:drawableTint
。 - VishnuSPandroid:tint="@color/tab_state"
。 - cmingmai