设置PorterDuff.Mode.CLEAR后被“剪切”部分是黑色

在自定义画图的时候,对Paint使用了PorterDuff.Mode.CLEARPorterDuff.Mode.DST_OUR等后,发现重叠部分被CLEAR后为黑色

设置PorterDuff.Mode.CLEAR后被“剪切”部分是黑色_第1张图片
黑色情况.png

然而,期望的效果如下

设置PorterDuff.Mode.CLEAR后被“剪切”部分是黑色_第2张图片
理想情况

原因:PorterDuff.Mode.CLEAR不支持硬件加速

解决办法:初始化View的时候,将下面代码添加即可

setLayerType(View.LAYER_TYPE_SOFTWARE, null);

参考资料
Drawing on Canvas - PorterDuff.Mode.CLEAR draws black! Why?

你可能感兴趣的:(设置PorterDuff.Mode.CLEAR后被“剪切”部分是黑色)