全网整合营销服务商

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

免费咨询热线: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 


相关文章: 定制建站流程解析:需求评估与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小时内与您取得联系。