在画布上绘制透明形状

pen*_*ume 8 android canvas transparent

我有一个占据整个屏幕的背景图像.我在背景上绘制画布并将其颜色设置为白色,因此您无法看到图像.我想要实现的是然后在白色画布上绘制一个透明的形状,并通过该形状的位置显示背景图像.我正在使用surfaceView并实现SurfaceView.Callback.

dav*_*vid 8

你应该使白色透明:

public void draw(Canvas canvas)
 {
  final RectF rectF = new RectF();
  final Paint paint = new Paint();
  paint.setARGB(128, 255, 255, 255);

  rectF.set(0,0, getMeasuredWidth(), getMeasuredHeight());

  canvas.drawRect(rectF, paint);
}
Run Code Online (Sandbox Code Playgroud)


Swa*_*aul 8

绘制透明形状遵循此代码

Paint paint = new Paint();
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); 

//draw any shape, here I am drawing Rect shape
Rect rect=new Rect(left, top, right, bottom);
canvas.drawRect(rect,paint);
Run Code Online (Sandbox Code Playgroud)

  • 它使该区域变黑 (4认同)