今天开发遇到要绘制背景半透明中间全透明效果,刚开始使用混合图像
setXfermode方法做,中间透明部分一直都是黑色,查了很多资料都不行。后来使用Path方式解决了,在此记录一下。
Canvas canvas; //绘制画布对象
Paint paint = new Paint(); //画笔
paint.setColor(0x33000000); //设置背景半透明
path.addRect(0, 0, w, h, Path.Direction.CW); //添加背景路径,CW为顺时针绘制,CCW为逆时针绘制
path.addRect(w/4, h/4, w-w/4, h-h/4, Path.Direction.CCW); //绘制中心全透明
canvas.drawPath(path, backgroundPaint); //绘制路径
需要注意:
添加路径的顺序和绘制的顺序不能错。