Значки вкладок: мой текущий метод состоит в том, чтобы создать два файла (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>
Есть ли способ использовать один рисунок и динамически менять его цвет? Использование жесткого шестнадцатеричного кода лучше?
Спасибо.
android:drawableTint
для представления - person VishnuSP   schedule 08.05.2017android:tint="@color/tab_state"
в векторный тег. - person cmingmai   schedule 08.05.2017