要实现的效果是在当前页面上,显示半透明的遮罩层,在任意位置实现镂空的圆形,镂空的位置能看到下面的页面,镂空的位置跟随一张提示文字的图片,效果如下:
实现步骤:
- 绘制半透明的背景:
- 绘制圆形
绘制文字图片
具体的实现代码如下:
1 绘制透明背景:
/**
* 创建遮罩层形状
*
* @return
*/
private Bitmap makeSrcRect() {
Bitmap bm = Bitmap.createBitmap(mScreenWidth, mScreenHeight, Bitmap.Config.ARGB_8888);
Canvas canvcs = new Canvas(bm);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.BLACK);
canvcs.drawRect(new RectF(0, 0, mScreenWidth, mScreenHeight), paint);
return bm;
}
2 绘制镂空的圆形
/**
* 创建镂空层圆形形状
* @return
*/
private Bitmap makeDstCircle() {
Bitmap bm = Bitmap.createBitmap(mScreenWidth, mScreenHeight, Bitmap.Config.ARGB_8888);
Canvas canvcs = new Canvas(bm);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.WHITE);
canvcs.drawCircle(mPiercedX, mPiercedY, mPiercedRadius, paint);
return bm;
}
3 绘制文字图片
/**
* 创建提示提示信息文字图片的bitmap
*
*