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 的范围,两个图形的交叉区域就错误了。
Bitmap 和 Drawable文字的测量
Loading...
shuouyang
shuouyang
android开发 ReactNative开发 小程序开发
最新发布
AOSP 环境搭建
2025-3-29
View 绘制流程-源码解析
2025-3-12
HTTP
2025-3-4
JVM 虚拟机
2025-2-28
蓝牙-BLE-基础
2025-2-28
从 OkHttp 的原理来看 HTTP
2025-2-19
公告
🎉热点信息🎉
--- 1 ---
Jet Brains 推出新的跨平台支持 Kotlin MultiPlatform
--- 2 ---
新的小巧便捷的依赖注入框架 Koin
--- 3 ---
新一代 API 查询语言 GraphQL
 
目录
0%