今天的内容主要是android.graphics.PorterDuff.Mode
有个需求类似:
canvas上绘制圆以外的区域为alpha透明度的黑色,圆内区域为透明:
实现原理很简单,就是把整个canvas画成alpha透明度的黑色,
canvas.drawARGB(alpha, 0, 0, 0);
然后抠空圆形区域。
//创建画笔
Paint mPaint = new Paint();
//设置画笔style为画实心的
mPaint.setStyle(Style.FILL_AND_STROKE);
//set mode为clear
mPaint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.CLEAR));
关于叠加mode的说明,可参照
http://www.cnblogs.com/DonkeyTomy/articles/3215137.html