先上效果图:

使用图层混合模式注意点:
1.图层类型设置为软件类型,有些api不支持硬件类型,默认视图是没有开启图层的
setLayerType(LAYER_TYPE_SOFTWARE, null);
2.创建新的图层来完成混合模式的运算(离屏绘制),然后更新到原始图层。如果直接在原始图层进行混合模式运算,原始图层的某些操作可能会影响混合模式运算结果,得不到预期的效果
//离屏绘制
int layer = canvas.saveLayer(0, 0, width, height, paint);
//......
//......
//恢复图层
canvas.restoreToCount(layer);
3.搞清楚哪个是目标图像,哪个是源图像,我的理解是先绘制目标图像,画笔设置混合模式,然后绘制的是源图像
//绘制目标图像
canvas.drawBitmap(dstBitmap, 0, 0, paint);
//设置混合模式
paint.setXfermode(porterDuffXfermode);
//绘制源图像
canvas.drawBitmap(srcBitmap, null, srcRect, paint);
4.混合模式计算完之后,清除画笔设置的混合模式

本文详细介绍了在Android中如何使用图层混合模式,包括设置图层类型为软件模式、离屏绘制、理解目标图像和源图像、清除混合模式等关键步骤,并提供了一个EraserView的示例代码,展示了如何实现橡皮擦效果,通过SRC_OUT模式将源图像与目标图像混合,达到擦除效果。
1万+

被折叠的 条评论
为什么被折叠?



