前言

本文主要给大家介绍了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小时内与您取得联系。