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颜色渲染相关推荐

  1. Android 颜色渲染(二) 颜色区域划分原理与实现思路

    在前面的系列我已经将Android中颜色渲染的原理及使用做了一个整体上概述. 现在开始根据一个比较复杂的实现进行具体的分析,这就是PhotoShop中的调色板应用 首先还是看一下最终的实现效果:    ...

  2. Android 颜色渲染(九) PorterDuff及Xfermode详解

    Android 颜色渲染(九)  PorterDuff及Xfermode详解 之前已经讲过了除ComposeShader之外Shader的全部子类, 在讲ComposeShader(组合渲染)之前,  ...

  3. android 代码设置tint,Android Tint 使用

    关注了许多Android方面的公众号,有好几个公众号在不同时间段推送了关于Tint的使用:因此一直记在心上,最近终于抽空实践了一下 简介:Tint 是 Android5.0 引入的一个属性,它可以在A ...

  4. 【Android 性能优化】布局渲染优化 ( 过渡绘制 | 背景设置产生的过度绘制 | Android 系统的渲染优化 | 自定义布局渲染优化 )

    文章目录 一. 背景设置产生的过度绘制 二. Android 系统的渲染优化 1. 透明组件数据传递 2. GPU 存储机制 3. Android 7.0 之后的优化机制 三. 自定义布局渲染优化 一 ...

  5. android+button+不可点击置灰,android:tint 给imagebutton着色 按钮灰色

    直接在xml进行颜色变化,使用三目运算符. 比如要给Imagebutton,在某个条件时变成灰色,其他变成OK色,直接在XML就搞定了: android:id="@+id/connect_o ...

  6. Android OpenGL+Camera2渲染(3) —— 大眼,贴纸功能实现

    Android OpenGL+Camera2渲染(1) -- OpenGL简单介绍 Android OpenGL+Camera2渲染(2) -- OpenGL实现Camera2图像预览 Android ...

  7. Android OpenGL+Camera2渲染(2) —— OpenGL实现Camera2图像预览

    Android OpenGL+Camera2渲染(1) -- OpenGL简单介绍 Android OpenGL+Camera2渲染(2) -- OpenGL实现Camera2图像预览 Android ...

  8. Android Tint着色器

    文章目录 Android Tint着色器 概述 使用 XML中使用 代码中使用 选择器使用 tintMode详解 Android Tint着色器 概述 tint 译为着色.tint一般与tintMod ...

  9. Android状态栏颜色修改

    android状态栏颜色修改 状态栏颜色的修改在4.4和5.x环境下分别有不同的方式,低于4.4以下是不能修改的. 5.x环境下 方式一,状态栏将显示为纯净的颜色,没有渐变效果 [java] view ...

最新文章

  1. 窃隐私、放高利贷,输入法的骚操作真不少!
  2. 在Docker Hub上你可以很轻松下载到大量已经容器化的应用镜像,即拉即用——daocloud国内镜像加速...
  3. 使用CoordinatorLayout打造一个炫酷的详情页
  4. Activiti工作流从入门到入土:入门实例
  5. 下一代Asp.net开发规范OWIN(3)—— Middleware
  6. 【二】Drupal 入门之新建主题
  7. java model 中文乱码,java传值乱码解决方法
  8. angularjs增删改查数据_MongoDB数据读写操作(增删改查)总结
  9. stm32 USART
  10. inuri .php id=,php常用函数(遇见就补充)
  11. Bailian4124 海贼王之伟大航路【DP】
  12. python软件下载3版本-Python 3.7.2和3.6.8版本发布下载,附更新说明
  13. Initial Audio Master Suite for Mac - 母带效果套件
  14. 2020-08-31第一次机器人课
  15. 在Windows上部署一个FHIR服务器(HAPI FHIR)
  16. 计算机通信网自学笔记(1)
  17. 详细讲解BM字符串搜索算法
  18. Outlook客户端解析Html类型邮件样式问题
  19. Mysql 5.7 取分组第一条
  20. SparkSQL详解

热门文章

  1. win10未检测到其他显示器
  2. 各种智能卡(IC 卡、PSAM卡、CPU卡、M1卡、CPC卡)
  3. Tomcat修改内存
  4. html5 签名,canvas在线签名插件Tablet
  5. FFT幅度谱为什么不对,需要较正
  6. teraterm 执行sql命令_tera term的ttl脚本使用方法
  7. 苹果平板可以用html么,苹果iPad怎么用?iPad新手必备十个使用心得分享(必看)...
  8. 什么是 .gitkeep ?
  9. web蓝桥杯第三期模拟赛
  10. 杜亥姆—马居耳公式(Duhem-Margule equations)及其应用