Tint能够实现图片变色,利用tint显示不同颜色的图片 原本需要多张相同图片不同颜色的情况,能够减少apk的体积
AndroidStudio使用
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
app:src="@drawable/new1"
android:tint="@color/black"
/>
这是把new1这张图片图上一层黑色的颜色
颜色选择器
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
app:src="@drawable/new1"
android:tint="@color/select_tint_color"
/>
在res目录下新建一个color文件夹
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/black" android:state_pressed="true"/>
<item android:color="#88ff0000"/>
</selector>
可以通过设置#88ff0000 88这两位就是设置他的透明度从00~ff
配合svg图片使用的话,可以只用一张svg图,实现点击变颜色的效果
代码的使用方法
var drawable: Drawable = resources.getDrawable(R.drawable.ic_mine)
DrawableCompat.setTint(drawable, Color.GREEN)
binding.imageview.setImageDrawable(drawable)
选择器
val drawable3 = ContextCompat.getDrawable(this, R.drawable.ic_mine)
drawable3?.let {
val tintDrawable = DrawableCompat.wrap(it).mutate()
DrawableCompat.setTintList(tintDrawable,
ContextCompat.getColorStateList(this, R.color.select_tint_color))
binding.imageview.setImageDrawable(tintDrawable)
}
|