нарисовать прозрачную форму на холсте - PullRequest
8 голосов
/ 25 февраля 2011

У меня есть фоновое изображение, которое занимает весь экран.Я рисую холст поверх фона и устанавливаю его цвет на белый, чтобы вы еще не могли видеть изображение.То, чего я пытаюсь добиться, это нарисовать прозрачную фигуру на белом холсте и показать фоновое изображение, где эта фигура.Я использую SurfaceView и реализую SurfaceView.Callback.

Ответы [ 2 ]

8 голосов
/ 09 марта 2013

, чтобы нарисовать прозрачную форму, следуйте этому коду

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);
8 голосов
/ 25 февраля 2011

Вы должны сделать белый цвет прозрачным:

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);
}
...