type
status
date
slug
summary
tags
category
password
icon
Xfermode:
- 为什么要 Xfermode?为了把多次绘制进⾏「合成」,例如蒙版效果:⽤ A 的形状和 B 的图案
Canvs.saveLayer()
把绘制区域拉到(挖出来)单独的离屏缓冲⾥- 绘制 A 图形
- ⽤
Paint.setXfermode()
设置 Xfermode - 绘制 B 图形
- ⽤
Paint.setXfermode(null)
恢复 Xfermode - ⽤
Canvas.restoreToCount()
把离屏缓冲中的合成后的图形放回绘制区域
- 为什么要⽤
saveLayer()
才能正确绘制 ?
为了把需要互相作⽤的图形放在单独的位置来绘制,不会受 View 本身的影响。如果不使⽤
saveLayer()
,绘制的⽬标区域将总是整个 View 的范围,两个图形的交叉区域就错误了。- 作者:shuouyang
- 链接:https://notion-tree.vercel.app/article/a6ca04b5-061a-47a3-9292-496523dcce23
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。