如何在Android XML中调整vector tintMode图标着色算法?
- 内容介绍
- 相关推荐
本文共计983个文字,预计阅读时间需要4分钟。
低于Android 5.0(API 21)时,使用`tintMode`在XML中直接写在`vector`标签中是不被支持的——系统不会解析它。真正起作用的方法是,通过Java或Kotlin代码调用`DrawableCompat.setTintMode`,或者使用`AppCompatImageView`配合`app:tintMode`属性。
常见错误现象:tintMode="multiply" 写在 src="@drawable/ic_home" 的 vector 文件里,但图标颜色没变,或者只在部分机型上生效。
- Android 5.0+:XML 中的
tintMode在ImageView或AppCompatImageView上才有效,且必须配合tint属性一起用 - Android 4.x:只能靠代码设置,XML 里的
tintMode字段会被静默丢弃 - 如果用了
android:background而非android:src,tint和tintMode全部失效
tintMode 可选值对应哪些混合逻辑?别硬记,看效果反推
Android 支持的 tintMode 实际是 Porter-Duff 混合模式子集,不是 Photoshop 那套。
本文共计983个文字,预计阅读时间需要4分钟。
低于Android 5.0(API 21)时,使用`tintMode`在XML中直接写在`vector`标签中是不被支持的——系统不会解析它。真正起作用的方法是,通过Java或Kotlin代码调用`DrawableCompat.setTintMode`,或者使用`AppCompatImageView`配合`app:tintMode`属性。
常见错误现象:tintMode="multiply" 写在 src="@drawable/ic_home" 的 vector 文件里,但图标颜色没变,或者只在部分机型上生效。
- Android 5.0+:XML 中的
tintMode在ImageView或AppCompatImageView上才有效,且必须配合tint属性一起用 - Android 4.x:只能靠代码设置,XML 里的
tintMode字段会被静默丢弃 - 如果用了
android:background而非android:src,tint和tintMode全部失效
tintMode 可选值对应哪些混合逻辑?别硬记,看效果反推
Android 支持的 tintMode 实际是 Porter-Duff 混合模式子集,不是 Photoshop 那套。

