前言
本文主要給大家介紹了Android中圖片DrawableCompat利用setTint()對圖片Drawable進(jìn)行變色的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹:
1.利用color資源對Drawable變色
Drawable對象的來源不限制,可以是從資源getResource().getDrawable(int resourceId)也可以是其他的方式得到的Drawable
Drawable wrappedDrawable = DrawableCompat.wrap(android/81793.html">drawable);DrawableCompat.setTint(wrappedDrawable, color);
2.采用ColorStateList來改變Drawable
Drawable wrappedDrawable = DrawableCompat.wrap(drawable);DrawableCompat.setTintList(wrappedDrawable, colors);
3.介紹一下ColorStateList
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android/137932.html">android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="#ffff0000"/> <!-- pressed --> <item android:state_focused="true" android:color="#ff0000ff"/> <!-- focused --> <item android:color="#ff000000"/> <!-- default --> </selector>
Java代碼(用于改變按鈕的字體顏色)
Button btn=(Button)findViewById(R.id.btn); Resources resource=(Resources)getBaseContext().getResources(); ColorStateList csl=(ColorStateList)resource.getColorStateList(R.color.button_text); if(csl!=null){ btn.setTextColor(color_state_list);//設(shè)置按鈕文字顏色 } 4.安利一個朋友封裝的工具類
public class DrawableTintUtil { /** * Drawable 顏色轉(zhuǎn)化類 * * @param drawable * @param color資源 * @return 改變顏色后的Drawable */ public static Drawable tintDrawable(@NonNull Drawable drawable, int color) { Drawable wrappedDrawable = DrawableCompat.wrap(drawable); DrawableCompat.setTint(wrappedDrawable, color); return wrappedDrawable; } /** * Drawable 顏色轉(zhuǎn)化類 * * @param drawable 源Drawable * @param ColorStateList * @return 改變顏色后的Drawable */ public static Drawable tintListDrawable(@NonNull Drawable drawable, ColorStateList colors) { Drawable wrappedDrawable = DrawableCompat.wrap(drawable); DrawableCompat.setTintList(wrappedDrawable, colors); return wrappedDrawable; }}總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對各位Android開發(fā)者們的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。
新聞熱點
疑難解答
圖片精選