是否可以使用 ColorStateList 为矢量绘图着色

Is it possible to tint vector drawable with ColorStateList

现在我有类似的东西

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/bg_button_selected" android:state_selected="true"/>
    <item android:drawable="@drawable/bg_button_pressed" android:state_pressed="true"/>
    <item android:drawable="@drawable/bg_button_normal"/>
</selector>

其中 bg_button_selected、bg_button_pressed、bg_button_normal 是非常相同的 PNG,唯一的区别是颜色。

我可以用单个 SVG 替换一组 PNG 并像这样设置色调吗?

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/bg_color_selected" android:state_selected="true"/>
    <item android:color="@color/bg_color_pressed" android:state_pressed="true"/>
    <item android:color="@color/bg_color_normal"/>
</selector>

Lollipop 之前的设备是否可行?

是的,您可以使用支持库。

您可以使用 ViewCompat.setBackgroundTintList(View, ColorStateList).