2011-02-25 165 views
8

我有占据整个屏幕的背景图像。我在背景上绘制画布,并将其颜色设置为白色,以便您看不到图像。我想要实现的是在白色画布上绘制透明形状,并通过背景图像显示该形状的位置。我正在使用SurfaceView并执行SurfaceView.Callback在画布上绘制透明形状

回答

7

你应该让白色透明:

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

绘制透明形状遵循这个代码

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); 
+2

它离开该地区黑 – 2017-02-26 18:35:20