Android 更改纯色背景图片颜色,可实现一张背景圆形图片展示不同颜色
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。
至于该参数有什么不同呢,网上也有很多,就不累赘了,找个大神的实验可以理解下点击查看
注意
- 我们画的圆形的图片不能是透明的,透明就没法进行填充过滤啦。
有的如果不生效,可以尝试添加下设置背景为透明
android:background="@android:color/transparent"
但是我进行了测试添加不添加,都是生效的。
Android 更改纯色背景图片颜色,可实现一张背景圆形图片展示不同颜色相关推荐
- android 图片转换圆形 黑色背景,Android 更改纯色背景图片颜色,可实现一张背景圆形图片展示不同颜色...
Android 更改纯色背景图片颜色,可实现一张背景圆形图片展示不同颜色 项目中可能会遇到比如多个纯色圆形背景列表或者说纯色圆形头像背景,一般让UI设计师设计多张背景图:但是有更好的方法只需一张图就可 ...
- Android图片缓存框架 - Fresco实现圆角或圆形图片 (四)
目录 1.Fresco 简介 2. Fresco 文档 3. Fresco开发步骤 4. Fresco加载图片6种方式 5. Drawees xm属性设置 6 Fresco实现圆角或圆形图片 6.1 ...
- android edittext底线,android – 更改edittext的底线颜色
我正在尝试更改EditText的底线颜色,但它显示默认的蓝线颜色.我无法理解我哪里出错了? android:id="@+id/searchtext" android:layout_ ...
- html修改img图片颜色,教你如何用CSS修改图片颜色
原标题:教你如何用CSS修改图片颜色 看到题目是不是吓了一跳?css竟然还有这个操作?还真是第一次听说~ 原理嘛,其实很简单的,用到的就是 CSS3 滤镜filter中的drop-shadow,该滤镜 ...
- html圆形图片切换,jQuery和CSS3炫酷圆形图片切换特效
这是一款效果非常酷的jQuery和CSS3圆形图片切换特效.该圆形图片特效可以使用animate.css来制作图片的进入动画和离开动画.可以任意设置多张图片进行来回翻转.旋转切换,效果堪称一流. 使用 ...
- HarmonyOS图片,HarmonyOS App开发造轮子--自定义圆形图片组件
一.背景 在采用Java配合xml布局编写鸿蒙app页面的时候,发现sdk自带的Image组件并不能将图片设置成圆形,反复了翻阅了官方API手册(主要查阅了Compont和Image相关的API),起 ...
- Android 指定纯色图标的颜色
最近项目用到了系统图标,但是设计师设计的颜色却与系统图标不一样: 如果每张图片都要用Photoshop进行颜色填充势必增加了工作量,而且不灵活,占资源: 例如同一张图片,希望点击的时候改变颜色 ...
- 多背景图CSS,CSS3设置多张背景图片
个人作业--week1 1.问题 (1)与软件学院相比,计算机科学更偏向理论研究,本系开设软件工程课程的意图是否是为了平衡理论与应用的比重? (2)Bug的定义根据开发者与使用者的分析角度不同,有着很 ...
- php背景渐变颜色代码,CSS实现网页背景渐变的四种代码设置
这篇文章主要介绍了关于CSS实现网页背景渐变的四种代码设置,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 一.从上往下渐变body{ FILTER: progid:DXImageTra ...
最新文章
- Selenium 爬虫时遇到的问题 Selenium message:session not created
- RabbitMQ简介及其安装
- 链路聚合_rhel7下的链路聚合配置
- 梳理一下我理解的aop
- 3组现代软件工程第三次作业
- android viewflipper图片轮播,使用ViewFlipper实现图片轮播
- Indetifier
- java 鼠标拖拽_JavaScript DOM 鼠标拖拽
- 基于CNN的SEEG/EEG脑电数据处理分析
- Matlab进行t检验
- mysql查询各专业人数_SQL统计各专业学生人数
- java微信多客服_怎么实现微信多公众号管理?有哪些多客服系统?
- mac可用的vpb_有什么让你相见恨晚的 MacBook 神器?
- 清除pycharm残留文件
- mysql 字符串截取查询
- jQuery学习第二天——jQuery的常见效果(上)
- 借助nz-pagination中的let-total解析ng-template
- c++ opengl 三维图形中显示文字_3D图形 和 OpenGL 简介
- 用python写的一个简易的云音乐播放器
- 【HigherHRNet】 HigherHRNet 详解之 HigherHRNet的整体框架与流程