Android tint颜色渲染
PorterDuff的由来:
PorterDuff其实来自两个人名:Tomas Porter和Tom Duff ,他们是最早在SIGGRAPH上提出图形混合概念的大神级人物.有感兴趣的同学可以自己查下并深入了解,在此不再做过多描述.
利用ProterBuff.Mode我们可以完成任意2D图像测操作, 比如涂鸦画板应用中的橡皮擦效果,绘制各种自定义的进度,等等很强大的效果,下面请看效果:
从上面我们可以看到PorterDuff.Mode为枚举类,一共有16个枚举值:
1.PorterDuff.Mode.CLEAR
所绘制不会提交到画布上。
2.PorterDuff.Mode.SRC
显示上层绘制图片
3.PorterDuff.Mode.DST
显示下层绘制图片
4.PorterDuff.Mode.SRC_OVER
正常绘制显示,上下层绘制叠盖。
5.PorterDuff.Mode.DST_OVER
上下层都显示。下层居上显示。
6.PorterDuff.Mode.SRC_IN
取两层绘制交集。显示上层。
7.PorterDuff.Mode.DST_IN
取两层绘制交集。显示下层。
8.PorterDuff.Mode.SRC_OUT
取上层绘制非交集部分。
9.PorterDuff.Mode.DST_OUT
取下层绘制非交集部分。
10.PorterDuff.Mode.SRC_ATOP
取下层非交集部分与上层交集部分
11.PorterDuff.Mode.DST_ATOP
取上层非交集部分与下层交集部分
12.PorterDuff.Mode.XOR
异或:去除两图层交集部分
13.PorterDuff.Mode.DARKEN
取两图层全部区域,交集部分颜色加深
14.PorterDuff.Mode.LIGHTEN
取两图层全部,点亮交集部分颜色
15.PorterDuff.Mode.MULTIPLY
取两图层交集部分叠加后颜色
16.PorterDuff.Mode.SCREEN
取两图层全部区域,交集部分变为透明色
还有另外两个
17.PorterDuff.Mode.ADD
18.PorterDuff.Mode.OVERLAY
那什么是Tint呢?
我们可以通过xml中的属性android:backgroundTint和android:backgroundTintMode来设置,android:backgroundTintMode这个属性传的值就是刚刚上面那些PorterDuff.Mode中的值,效果的话上面的图也展示了。android:backgroundTint的话就是传color的值。
那么android:background和android:backgroundTint有什么区别呢?
如果设置了android:background,那么控件的背景颜色就会直接修改。
如果设置了android:backgroundTint,那么就会将设置的颜色和原来的背景进行一个叠加的过程,至于如何叠加,就是上面的mode。
Android tint颜色渲染相关推荐
- Android 颜色渲染(二) 颜色区域划分原理与实现思路
在前面的系列我已经将Android中颜色渲染的原理及使用做了一个整体上概述. 现在开始根据一个比较复杂的实现进行具体的分析,这就是PhotoShop中的调色板应用 首先还是看一下最终的实现效果: ...
- Android 颜色渲染(九) PorterDuff及Xfermode详解
Android 颜色渲染(九) PorterDuff及Xfermode详解 之前已经讲过了除ComposeShader之外Shader的全部子类, 在讲ComposeShader(组合渲染)之前, ...
- android 代码设置tint,Android Tint 使用
关注了许多Android方面的公众号,有好几个公众号在不同时间段推送了关于Tint的使用:因此一直记在心上,最近终于抽空实践了一下 简介:Tint 是 Android5.0 引入的一个属性,它可以在A ...
- 【Android 性能优化】布局渲染优化 ( 过渡绘制 | 背景设置产生的过度绘制 | Android 系统的渲染优化 | 自定义布局渲染优化 )
文章目录 一. 背景设置产生的过度绘制 二. Android 系统的渲染优化 1. 透明组件数据传递 2. GPU 存储机制 3. Android 7.0 之后的优化机制 三. 自定义布局渲染优化 一 ...
- android+button+不可点击置灰,android:tint 给imagebutton着色 按钮灰色
直接在xml进行颜色变化,使用三目运算符. 比如要给Imagebutton,在某个条件时变成灰色,其他变成OK色,直接在XML就搞定了: android:id="@+id/connect_o ...
- Android OpenGL+Camera2渲染(3) —— 大眼,贴纸功能实现
Android OpenGL+Camera2渲染(1) -- OpenGL简单介绍 Android OpenGL+Camera2渲染(2) -- OpenGL实现Camera2图像预览 Android ...
- Android OpenGL+Camera2渲染(2) —— OpenGL实现Camera2图像预览
Android OpenGL+Camera2渲染(1) -- OpenGL简单介绍 Android OpenGL+Camera2渲染(2) -- OpenGL实现Camera2图像预览 Android ...
- Android Tint着色器
文章目录 Android Tint着色器 概述 使用 XML中使用 代码中使用 选择器使用 tintMode详解 Android Tint着色器 概述 tint 译为着色.tint一般与tintMod ...
- Android状态栏颜色修改
android状态栏颜色修改 状态栏颜色的修改在4.4和5.x环境下分别有不同的方式,低于4.4以下是不能修改的. 5.x环境下 方式一,状态栏将显示为纯净的颜色,没有渐变效果 [java] view ...
最新文章
- 窃隐私、放高利贷,输入法的骚操作真不少!
- 在Docker Hub上你可以很轻松下载到大量已经容器化的应用镜像,即拉即用——daocloud国内镜像加速...
- 使用CoordinatorLayout打造一个炫酷的详情页
- Activiti工作流从入门到入土:入门实例
- 下一代Asp.net开发规范OWIN(3)—— Middleware
- 【二】Drupal 入门之新建主题
- java model 中文乱码,java传值乱码解决方法
- angularjs增删改查数据_MongoDB数据读写操作(增删改查)总结
- stm32 USART
- inuri .php id=,php常用函数(遇见就补充)
- Bailian4124 海贼王之伟大航路【DP】
- python软件下载3版本-Python 3.7.2和3.6.8版本发布下载,附更新说明
- Initial Audio Master Suite for Mac - 母带效果套件
- 2020-08-31第一次机器人课
- 在Windows上部署一个FHIR服务器(HAPI FHIR)
- 计算机通信网自学笔记(1)
- 详细讲解BM字符串搜索算法
- Outlook客户端解析Html类型邮件样式问题
- Mysql 5.7 取分组第一条
- SparkSQL详解
热门文章
- win10未检测到其他显示器
- 各种智能卡(IC 卡、PSAM卡、CPU卡、M1卡、CPC卡)
- Tomcat修改内存
- html5 签名,canvas在线签名插件Tablet
- FFT幅度谱为什么不对,需要较正
- teraterm 执行sql命令_tera term的ttl脚本使用方法
- 苹果平板可以用html么,苹果iPad怎么用?iPad新手必备十个使用心得分享(必看)...
- 什么是 .gitkeep ?
- web蓝桥杯第三期模拟赛
- 杜亥姆—马居耳公式(Duhem-Margule equations)及其应用