Android 中的 tint 着色器

版权声明:转载请标明出处「OneDeveloper」 https://blog.csdn.net/OneDeveloper/article/details/82112461

使用 tint 着色器,结合矢量图,可以用一张图片,适配多中颜色(前提是纯色的)。就像下图的效果:
这里写图片描述

另外,还可以更进一步的实现 selector。


主要参考的文章:
1、安卓着色器(tint)使用实践。
2、从使用到源码,细说 Android 中的 tint 着色器

在具体的使用中,需要注意的是系统兼容的问题,因为是从 API 21 才开始引入的,如果要在 6.0 以前的版本使用,那么就需要使用 DrawableCompat 类。

以及,需要注意 Draeable 为节省共享同一个 constant state 的问题。

还有一个问题,那就是如果 xml 文件中使用 android:tint 为 View 设置了着色器的颜色,那么在 Java 文件用代码为该 View 再次设置 tint 将不会生效。(暂时不能排除 SDK 版本以及测试机版本的影响)

在使用代码实现 selector 的时候,对应的 View 需要设置 android:clickable="true"

猜你喜欢

转载自blog.csdn.net/OneDeveloper/article/details/82112461
今日推荐