Android对图片Drawable实现变色示例代码
2017-08-23 11:14
776 查看
前言
本文主要给大家介绍了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开发者们的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
您可能感兴趣的文章:
相关文章推荐
- Android实现用文字生成图片的示例代码
- Android实现图片压缩示例代码
- 一个Android实现图片的倒影效果的代码示例
- Android中利用Handler实现图片轮播 ,示例+ 代码
- [Android]代码实现ColorStateList及StateListDrawable
- Android中悬浮窗口的实现原理和示例代码
- 【荐】JavaScript+CSS技术实现能覆盖SELECT的图片放大(放大镜)示例代码
- Android中悬浮窗口的实现原理和示例代码
- [Android]代码实现ColorStateList及StateListDrawable
- 利用代码实现Android多分辨率的对应——即一套图片对应多个分辨率
- android实现图片拖拽效果(参考了一下别人的代码)
- 利用代码实现Android多分辨率的对应——即一套图片对应多个分辨率
- 用TreeView控件实现资源管理器(显示本地硬盘下所有文件夹和文件,并可以浏览图片)(示例代码下载)
- 自己写代码实现android的图片裁剪。
- Android中悬浮窗口的实现原理和示例代码
- Android中悬浮窗口的实现原理和示例代码
- Android中悬浮窗口的实现原理和示例代码
- Android中悬浮窗口的实现原理和示例代码
- android 动画Animation硬代码实现示例
- Android中悬浮窗口的实现原理和示例代码