Paint方法总结(三):图层混合模式
参考扔物线大神博客
离屏绘制
在介绍图层混合模式之前先简单的说一下Android的离屏绘制。离屏绘制就是图层绘制的一种缓冲策略,通过canvas.saveLayer()
将缓冲层保存起来,这个saveLayer会返回一个layerID
,把图层先绘制在缓冲层,然后通过canvas.restoreToCount(layerId)
恢复图层,将缓冲层的图像绘制在画布上。在进行图层混合演示的时候,要使用离屏绘制,因为如果直接在画布上进行图层混合的话,画布和画布的颜色也会加入到图层的混合策略中,这样会造成演示结果的偏差。
PorterDuff.Mode
PorterDuff.Mode
是用来指定两个图层共同绘制的时候的一个混合的策略,他是一个enum,不同的Mode可以指定不同的混合策略。最新的文档中,混合模式一共有18个所有的图层混合模式的效果都是作用于源图像上的
效果图就直接上官方文档吧
源图像和目标图像: