android應用圖標快速換色-tint

1.應用場景

項目中的大量圖標需要統(tǒng)一換色,可以用下面的方式, 只要自己封裝一個工具類就可以了

1.xml中使用tint

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/image2"
        android:src="@mipmap/icon"
        android:tint="#FFCDD2"
        android:clickable="true"
    />

2.代碼中使用tint

Drawable drawable = ContextCompat.getDrawable(this,R.mipmap.icon);
//簡單的使用tint改變drawable顏色
Drawable drawable1 = getTintDrawable(drawable,ContextCompat.getColor(this,R.color.pink));
imageView.setImageDrawable(drawable1);

private Drawable getTintDrawable(Drawable drawable,@ColorInt int color) {
        Drawable.ConstantState state = drawable.getConstantState();
        Drawable drawable1 = DrawableCompat.wrap(state == null ? drawable : state.newDrawable()).mutate();
        drawable1.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
        DrawableCompat.setTint(drawable1, color);
        return drawable1;
    }

參考文章:

http://www.itdecent.cn/p/6bd7dd1cd491
https://github.com/afeilo/TintDemo/tree/master

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容