背景
在菜单栏改版开发中,发现需要引入大量图片,其中像设置开关部分差异仅在颜色,但是需要两张图片。这样包体随着图片的添加也会变大。有没有更好的办法呢?
使用Tint实现
Android在5.0的时候推出Tint可以很方便的将一张图片”着色”为任何颜色。这样我们只需要放一张图片即可。
- 使用 android:tint 以及 android:tintMode 属性设置您的布局中的着色颜色和模式。
<ImageView
android:id="@+id/img_tint_1"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@android:color/darker_gray"
android:scaleType="center"
android:src="@drawable/icon_test_tint"/>
<ImageView
android:id="@+id/img_tint_2"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@android:color/darker_gray"
android:scaleType="center"
android:src="@drawable/icon_test_tint"
android:tint="@color/blue"/>
两个imageView是一样的,为了好展现结果,都添加了一个灰色背景。第二个添加了 android:tint属性,结果如下:
我们发现,我们的白色图标被“着色”为我们自己设置的蓝色。是不是很方便呢?
- 使用 setTint() 方法为 BitmapDrawable 或 NinePatchDrawable 对象着色。
使用代码方式也比较简单
ImageView imageView &#