Android 更改纯色背景图片颜色,可实现一张背景圆形图片展示不同颜色

项目中可能会遇到比如多个纯色圆形背景列表或者说纯色圆形头像背景,一般让UI设计师设计多张背景图;但是有更好的方法只需一张图就可以搞定。

当然完全也不用麻烦我们的UI设计师啦,直接画一个圆形背景图不就行了。

用shape画圆形图

View设置该背景

代码里设置setColorFilter即可

首先画个圆形图,大家都比较熟悉,再次记录下(画一个白色圆形图):

android:shape="oval">

android:width="50dp"

android:height="50dp" />

然后设置该背景:

android:id="@+id/mColor"

android:layout_width="60dp"

android:layout_height="60dp"

android:background="@android:color/transparent"

android:src="@drawable/dot_white" />

最后在需要更改颜色设置颜色:

mColor.setColorFilter(0xFFFF0000);//设置红色颜色

这就完成了,是不是很方便。主要还是setColorFilte,当然该属性支持xml里设置的。

setColorFilter(ColorFilter filter)是什么呢?

设置颜色过滤,这个方法需要我们传入一个ColorFilter参数同样也会返回一个ColorFilter实例。我们在setColorFilter(ColorFilter filter)的时候可以直接传入ColorMatrixColorFilter、LightingColorFilter或PorterDuffColorFilter的子类对象作为参数。

我们采用默认的直接颜色,我们进入源代码可以发现默认是PorterDuff.Mode.SRC_ATOP

/**

* Set a tinting option for the image. Assumes

* {@link PorterDuff.Mode#SRC_ATOP} blending mode.

*

* @param color Color tint to apply.

* @attr ref android.R.styleable#ImageView_tint

*/

@RemotableViewMethod

public final void setColorFilter(int color) {

setColorFilter(color, PorterDuff.Mode.SRC_ATOP);

}

至于属性参数设置为PorterDuff.Mode。

至于该参数有什么不同呢,网上也有很多,就不累赘了,找个大神的实验可以理解下点击查看

注意

我们画的圆形的图片不能是透明的,透明就没法进行填充过滤啦。

有的如果不生效,可以尝试添加下设置背景为透明

android:background="@android:color/transparent"

但是我进行了测试添加不添加,都是生效的。

android 图片转换圆形 黑色背景,Android 更改纯色背景图片颜色,可实现一张背景圆形图片展示不同颜色...相关推荐

  1. Qt怎么实现将bmp图片转换成Ascii_一个简单易用但功能强大的图形矢量化软件,扫描图片转换成CAD图的软件等等...

    背景简介 很多童鞋可能可能有想要把图片转成CAD能打开的格式,但是找不到软件,今天要分享的这个软件值得一试. 内容简介 AlgoLabR2VToolkit是一个将光栅图像转换为矢量图像的软件,转换后的 ...

  2. android webp转换jpg格式,Android使用webp格式图片的步骤

    webp是Android推荐使用的一种图片格式,内存占用很小.使用webp图片是app瘦身和内存优化的很好的方式之一. 下面是webp的使用步骤介绍: 1.下载webp工具,这个google提供给我们 ...

  3. android 日期 转换成字符串,android JAVA字符串转日期或日期转字符串(转)

    用法: SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " ); 这一行最重要,它确立了转换的 ...

  4. android 经纬度 转换成地址,Android 百度地图经纬度转换成地址

    1.地理编码查询接口是单列模式的,我们需要调用让它自己实例化 // 在OnCreate方法里创建地理编码检索实例 GeoCoder geoCoder = GeoCoder.newInstance(); ...

  5. 多背景图CSS,CSS3设置多张背景图片

    个人作业--week1 1.问题 (1)与软件学院相比,计算机科学更偏向理论研究,本系开设软件工程课程的意图是否是为了平衡理论与应用的比重? (2)Bug的定义根据开发者与使用者的分析角度不同,有着很 ...

  6. android 单位转换工具,Android单位转换工具类

    Android单位转换工具类 Android单位转换工具类主要由以下4部分构成 1.这个类不能被初始化 2.dip转px接口 3.sp转px接口 4.px转dip接口 代码如下: import and ...

  7. 把图片转换成视频-ffmpeg

    把图片转换成视频-ffmpeg 2018年03月06日 22:05:08 zhangjundi 阅读数 4401更多 个人分类: Android开发 http://blog.csdn.net/huan ...

  8. android启动画面白屏,Android app启动时黑屏或者白屏的原因及解决办法

    1.产生原因 其实显示黑屏或者白屏实属正常,这是因为还没加载到布局文件,就已经显示了window窗口背景,黑屏白屏就是window窗口背景. 示例: 2.解决办法 通过设置设置Style (1)设置背 ...

  9. 通过ffmpeg把图片转换成视频

    ffmpeg是一个非常强大的工具,使用他可以转换视频格式,包括视频容器格式,视频编码格式.这里所说的视频,包括了视频和音频.可以更改视频的其他的参数,比如帧率-每秒播放的帧数, 视频的大小-尺寸等等. ...

最新文章

  1. matlab金属槽有限差分法程序,有限差分法MATLAB程序
  2. bootstrap 垂直居中 布局_给你一份详细的CSS布局指南,请查收
  3. [python]两种编程思维--面向过程和面向对象
  4. 设置联想电脑双屏显示(备用待查)
  5. Angular jasmine如何从detectChange触发refreshView进而执行到Component的hook实现
  6. 第二阶段个人工作总结04
  7. Visual Studio现可使用EditorConfig
  8. java 随机数种子_Java--随机数和随机数种子(转)
  9. 深入理解并发/并行,阻塞/非阻塞,同步/异步
  10. jsoup解析器快速入门
  11. c# export server 调用sql_C#调用SQL Server参数过程传参
  12. ECharts(Enterprise Charts 商业产品图表库)初识
  13. .net 6 简单使用redis
  14. mac vue 代理失效
  15. 我的2017,五味杂陈
  16. LSB利器-zsteg
  17. 嵌入式Linux配置内核后编译过程中报未定义引用错误的解决
  18. 通过blacklist来禁用驱动
  19. Mac干货 如何快速的在Mac上安装Windows双系统?虚拟机Parallels Desktop +Bootcamp安装
  20. dlib.get_frontal_face_detector(), Python format 格式化函数 predictor(img, dets[0])

热门文章

  1. 一个阿里P8的工程师,一年能赚多少钱?
  2. HEIC 对比 JPG | 转换工具
  3. 5GC注册流程(详解)
  4. 嵌入式桌面(1)——weston桌面
  5. 约翰·冯·诺依曼到底有多聪明
  6. 2021-2027全球与中国微型激光投影仪市场现状及未来发展趋势
  7. PyCharm下载主题以及个性化设置(详细)
  8. 【机器学习】基于奇异值分解(SVD)的协同过滤推荐算法及python实现
  9. Java实现汉字转拼音,多音字处理,简单明了
  10. 【python学习】python基础-数据