android canvas 绘制 Cirle 以外的区域为指定颜色

今天的内容主要是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



猜你喜欢

转载自blog.csdn.net/liu_zhen_wei/article/details/20294851