亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Android -對圖片Drawable進行變色

標簽:
Java Android
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;
  }
}
點擊查看更多內容
11人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
移動開發工程師
手記
粉絲
424
獲贊與收藏
5663

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消