前言

本文主要给大家介绍了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
相关文章:
定制建站流程解析:需求评估与SEO优化功能开发指南
建站三合一如何选?哪家性价比更高?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
香港服务器租用每月最低只需15元?
已有域名和空间,如何快速搭建网站?
临沂网站制作企业,临沂第三中学官方网站?
已有域名如何免费搭建网站?
寿县云建站:智能SEO优化与多行业模板快速上线指南
如何生成腾讯云建站专用兑换码?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
h5在线制作网站电脑版下载,h5网页制作软件?
如何在服务器上三步完成建站并提升流量?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
网站制作公司排行榜,抖音怎样做个人官方网站
详解jQuery停止动画——stop()方法的使用
如何获取上海专业网站定制建站电话?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
兔展官网 在线制作,怎样制作微信请帖?
视频网站制作教程,怎么样制作优酷网的小视频?
建站之星如何一键生成手机站?
如何通过虚拟主机空间快速建站?
,网页ppt怎么弄成自己的ppt?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
如何通过山东自助建站平台快速注册域名?
小型网站制作HTML,*游戏网站怎么搭建?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
建站之星云端配置指南:模板选择与SEO优化一键生成
常州自助建站工具推荐:低成本搭建与模板选择技巧
网页设计与网站制作内容,怎样注册网站?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
如何在万网主机上快速搭建网站?
建站主机选哪家性价比最高?
如何在阿里云通过域名搭建网站?
如何在Golang中指定模块版本_使用go.mod控制版本号
如何用虚拟主机快速搭建网站?详细步骤解析
,sp开头的版面叫什么?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站主机数据库如何配置才能提升网站性能?
如何通过免费商城建站系统源码自定义网站主题与功能?
C++如何使用std::optional?(处理可选值)
如何在Golang中引入测试模块_Golang测试包导入与使用实践
如何用景安虚拟主机手机版绑定域名建站?
如何在阿里云部署织梦网站?
如何设计高效校园网站?
南平网站制作公司,2025年南平市事业单位报名时间?
*请认真填写需求信息,我们会在24小时内与您取得联系。