Android對圖片Drawable實現(xiàn)變色示例代碼
前言
本文主要給大家介紹了Android中圖片DrawableCompat利用setTint()對圖片Drawable進行變色的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:
1.利用color資源對Drawable變色
Drawable對象的來源不限制,可以是從資源getResource().getDrawable(int resourceId)也可以是其他的方式得到的Drawable
Drawable wrappedDrawable = DrawableCompat.wrap(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="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);//設置按鈕文字顏色
}
4.安利一個朋友封裝的工具類
public class DrawableTintUtil {
/**
* Drawable 顏色轉化類
*
* @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 顏色轉化類
*
* @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;
}
}
總結
以上就是這篇文章的全部內容了,希望本文的內容對各位Android開發(fā)者們的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
Android?RecyclerChart其它圖表繪制示例詳解
這篇文章主要為大家介紹了Android?RecyclerChart其它圖表繪制示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12
Android獲取網(wǎng)絡連接狀態(tài)新方法整理
這篇文章主要給大家介紹了關于Android獲取網(wǎng)絡連接狀態(tài)新方法的相關資料,在開發(fā)安卓移動端時幾乎每一個app都需要連接網(wǎng)絡,因此對設備的網(wǎng)絡狀態(tài)檢測是很有必要的,需要的朋友可以參考下2023-11-11
Android中SharedPreferences簡單使用實例
這篇文章主要介紹了Android中SharedPreferences簡單使用案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10
Android 使用Gallery實現(xiàn)3D相冊(附效果圖+Demo源碼)
今天主要是說說如何實現(xiàn)Gallery的3D顯示切換,Demo的代碼很多是基于網(wǎng)上一些現(xiàn)成效果,感謝這些分享成果的開發(fā)者2013-07-07

