全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

前言

本文主要给大家介绍了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  # drawable图片  # drawable  # 获取drawable  # Android Bitmap和Drawable相互转换的简单代码  # Android Drawable代码编写的新姿势分享  # 相关内容  # 说了  # 不多  # 其他的  # 是从  # 给大家  # 这篇文章  # 谢谢大家  # 介绍一下  # 有疑问  # wrappedDrawable  # setTintList  # ColorStateList  # colors  # wrap  # version  # utf  # encoding  # xml 


相关文章: 建站之星如何助力企业快速打造五合一网站?  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  广州商城建站系统开发成本与周期如何控制?  建站主机无法访问?如何排查域名与服务器问题  临沂网站制作公司有哪些,临沂第四中学官网?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  建站VPS推荐:2025年高性能服务器配置指南  婚礼视频制作网站,学习*后期制作的网站有哪些?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  广德云建站网站建设方案与建站流程优化指南  如何选购建站域名与空间?自助平台全解析  建站之星北京办公室:智能建站系统与小程序生成方案解析  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  如何用IIS7快速搭建并优化网站站点?  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  如何高效完成自助建站业务培训?  红河网站制作公司,红河事业单位身份证如何上传?  南平网站制作公司,2025年南平市事业单位报名时间?  ,sp开头的版面叫什么?  如何在景安服务器上快速搭建个人网站?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  建站之星如何实现五合一智能建站与营销推广?  制作宣传网站的软件,小红书可以宣传网站吗?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  临沂网站制作企业,临沂第三中学官方网站?  5种Android数据存储方式汇总  如何配置IIS站点权限与局域网访问?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  建站之星代理如何获取技术支持?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  网站制作新手教程,新手建设一个网站需要注意些什么?  宝塔Windows建站如何避免显示默认IIS页面?  如何在云服务器上快速搭建个人网站?  郑州企业网站制作公司,郑州招聘网站有哪些?  建站168自助建站系统:快速模板定制与SEO优化指南  宝塔新建站点为何无法访问?如何排查?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  建站之星安装提示数据库无法连接如何解决?  ,在苏州找工作,上哪个网站比较好?  如何通过商城免费建站系统源码自定义网站主题?  如何通过多用户协作模板快速搭建高效企业网站?  如何高效配置IIS服务器搭建网站?  如何破解联通资金短缺导致的基站建设难题?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  建站之星会员如何解锁更多建站功能?  北京制作网站的公司,北京铁路集团官方网站?  如何通过虚拟机搭建网站?详细步骤解析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。