当前位置: 移动技术网 > 移动技术>移动开发>Android > Android对图片Drawable实现变色示例代码

Android对图片Drawable实现变色示例代码

2019年07月24日  | 移动技术网移动技术  | 我要评论

前言

本文主要给大家介绍了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开发者们的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对移动技术网的支持。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网