当前位置: 首页 > 编程笔记 >

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

赵智
2023-03-14
本文向大家介绍Android对图片Drawable实现变色示例代码,包括了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实现图片浏览器示例,包括了Android实现图片浏览器示例的使用技巧和注意事项,需要的朋友参考一下 本文所述为一个基础的Android图片浏览器代码,是仿写Google原版实现的,代码中实现了主要的实现过程和方法,具体的完善还需要自己添加,代码中有很多注释,可帮助新手们快速理解代码,使用了部分图像资源。 主要功能代码如下: 本文所述仅为其主要功能代码部分,读者可以对其进

  • 本文向大家介绍Android实现用文字生成图片的示例代码,包括了Android实现用文字生成图片的示例代码的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Android实现用文字生成图片的示例代码,分享给大家,具体如下: 效果图 我们先来看看效果图,可以看到下图由各种颜色的”美”字拼接而成,形成了一张不一样的图片。 原理 生成这种图片的原理很简单,但是当时看开源项目时愣是看不懂,因为没学过Py

  • 本文向大家介绍Android实现动态改变app图标的示例代码,包括了Android实现动态改变app图标的示例代码的使用技巧和注意事项,需要的朋友参考一下 本文介绍了动态改变app图标,分享给大家,具体如下: 代码实现如下: 我们先来简单的分析一下上面的代码: 这两个属性是用来设置图标和标签 别名的name设置成一个activity,尽量和一个<activity>的name保持一致,如果不设置成一

  • 本文向大家介绍Android图片实现压缩处理的实例代码,包括了Android图片实现压缩处理的实例代码的使用技巧和注意事项,需要的朋友参考一下 整理文档,搜刮出一个Android图片实现压缩处理的实例代码,稍微整理精简一下做下分享。 详解: 1.获取本地图片File文件 获取BitmapFactory.Options对象 计算原始图片 目标图片宽高比 计算输出的图片宽高 2.根据宽高比计算opt

  • 本文向大家介绍android中实现背景图片颜色渐变方法,包括了android中实现背景图片颜色渐变方法的使用技巧和注意事项,需要的朋友参考一下 常用,记录一下。 效果图: 首先新建xml文件  bg_gradient.xml 在布局文件里面引用

  • 本文向大家介绍Python实现图片转字符画的示例代码,包括了Python实现图片转字符画的示例代码的使用技巧和注意事项,需要的朋友参考一下 初学Python,在网上看到Python图片转字符画的教程,我也来尝试下。 首先我们要用到Python的PIL库的Image模块,PIL(Python Imaging Library)库是Python的一个图像处理库。想了解PIL的详细功能介绍,可参考PIL的