自定义自己的轻量级GuideView,满足app的正常引导需求,半透明灰色蒙板,控件高亮展示,添加引导说明。
将主要代码贴出做简单解释。
首先自定义蒙板View
onDraw()方法中关键代码如下
setLayerType(View.LAYER_TYPE_SOFTWARE, null); //需要关闭硬件加速,否则混合模式显示无效
Paint paint = new Paint(); //新建画笔
paint.setAntiAlias(true); //抗锯齿
setBackgroundColor(Color.TRANSPARENT); //设置画布背景透明
paint.setColor(0xa0000000); //设置画笔颜色半透明
canvas.drawRect(0,0,width,height,paint); //半透明画满整个画布,with、height为自定义View宽高
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); //设置图像混合模式为clear
paint.drawRect(left,top,right,bottom,paint); //绘制镂空图形
PorterDuff.Mode.CLEAR:上层绘制不会提交到画布,并把与下层交集部分也清除,类似镂空,设置此混合模式之后画笔所画图形部分就为镂空部分
其他混合模式如下:
PorterDuff.Mode.CLEAR |
上层绘制不会提交到画布,并把与下层交集部分也清除< |