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

项目中可能会遇到比如多个纯色圆形背景列表或者说纯色圆形头像背景,一般让UI设计师设计多张背景图;但是有更好的方法只需一张图就可以搞定。
当然完全也不用麻烦我们的UI设计师啦,直接画一个圆形背景图不就行了。

  • 用shape画圆形图

  • View设置该背景

  • 代码里设置setColorFilter即可

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

    <shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="oval"><solid android:color="@color/white" /><sizeandroid:width="50dp"android:height="50dp" /></shape>

然后设置该背景:

    <ImageViewandroid: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*/@RemotableViewMethodpublic final void setColorFilter(int color) {setColorFilter(color, PorterDuff.Mode.SRC_ATOP);}

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

注意

  1. 我们画的圆形的图片不能是透明的,透明就没法进行填充过滤啦。
  2. 有的如果不生效,可以尝试添加下设置背景为透明

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

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

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

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

    Android 更改纯色背景图片颜色,可实现一张背景圆形图片展示不同颜色 项目中可能会遇到比如多个纯色圆形背景列表或者说纯色圆形头像背景,一般让UI设计师设计多张背景图:但是有更好的方法只需一张图就可 ...

  2. Android图片缓存框架 - Fresco实现圆角或圆形图片 (四)

    目录 1.Fresco 简介 2. Fresco 文档 3. Fresco开发步骤 4. Fresco加载图片6种方式 5. Drawees xm属性设置 6 Fresco实现圆角或圆形图片 6.1 ...

  3. android edittext底线,android – 更改edittext的底线颜色

    我正在尝试更改EditText的底线颜色,但它显示默认的蓝线颜色.我无法理解我哪里出错了? android:id="@+id/searchtext" android:layout_ ...

  4. html修改img图片颜色,教你如何用CSS修改图片颜色

    原标题:教你如何用CSS修改图片颜色 看到题目是不是吓了一跳?css竟然还有这个操作?还真是第一次听说~ 原理嘛,其实很简单的,用到的就是 CSS3 滤镜filter中的drop-shadow,该滤镜 ...

  5. html圆形图片切换,jQuery和CSS3炫酷圆形图片切换特效

    这是一款效果非常酷的jQuery和CSS3圆形图片切换特效.该圆形图片特效可以使用animate.css来制作图片的进入动画和离开动画.可以任意设置多张图片进行来回翻转.旋转切换,效果堪称一流. 使用 ...

  6. HarmonyOS图片,HarmonyOS App开发造轮子--自定义圆形图片组件

    一.背景 在采用Java配合xml布局编写鸿蒙app页面的时候,发现sdk自带的Image组件并不能将图片设置成圆形,反复了翻阅了官方API手册(主要查阅了Compont和Image相关的API),起 ...

  7. Android 指定纯色图标的颜色

        最近项目用到了系统图标,但是设计师设计的颜色却与系统图标不一样: 如果每张图片都要用Photoshop进行颜色填充势必增加了工作量,而且不灵活,占资源: 例如同一张图片,希望点击的时候改变颜色 ...

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

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

  9. php背景渐变颜色代码,CSS实现网页背景渐变的四种代码设置

    这篇文章主要介绍了关于CSS实现网页背景渐变的四种代码设置,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 一.从上往下渐变body{ FILTER: progid:DXImageTra ...

最新文章

  1. Selenium 爬虫时遇到的问题 Selenium message:session not created
  2. RabbitMQ简介及其安装
  3. 链路聚合_rhel7下的链路聚合配置
  4. 梳理一下我理解的aop
  5. 3组现代软件工程第三次作业
  6. android viewflipper图片轮播,使用ViewFlipper实现图片轮播
  7. Indetifier
  8. java 鼠标拖拽_JavaScript DOM 鼠标拖拽
  9. 基于CNN的SEEG/EEG脑电数据处理分析
  10. Matlab进行t检验
  11. mysql查询各专业人数_SQL统计各专业学生人数
  12. java微信多客服_怎么实现微信多公众号管理?有哪些多客服系统?
  13. mac可用的vpb_有什么让你相见恨晚的 MacBook 神器?
  14. 清除pycharm残留文件
  15. mysql 字符串截取查询
  16. jQuery学习第二天——jQuery的常见效果(上)
  17. 借助nz-pagination中的let-total解析ng-template
  18. c++ opengl 三维图形中显示文字_3D图形 和 OpenGL 简介
  19. 用python写的一个简易的云音乐播放器
  20. 【HigherHRNet】 HigherHRNet 详解之 HigherHRNet的整体框架与流程

热门文章

  1. CycleGAN(循环生成对抗网络)论文解读
  2. Web 自动化下载及转换Word自动排版
  3. oracle根据秒数生成多少小时多少分钟多少秒
  4. 游戏之巅:游戏背后的创业风云
  5. Tableau 重新认识购物篮分析(SQL版)
  6. nokia n9 android 4.4,诺基亚N9能升级安卓4.0吗
  7. 使用WinAVI配合TMPGEnc DVD Author將多个mpg檔燒成一塊DVD
  8. 43.TCP三次握手建立连接的过程
  9. 杰理之内置触摸灵敏度调试工具【篇】
  10. yy里怎么复制别人的话_怎么把复制的yy频道弄上去