我使用此方法清除屏幕
Canvas canvas = mSurfaceHolder.lockCanvas();
Paint p = new Paint();
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
canvas.drawPaint(p);
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
mSurfaceHolder.unlockCanvasAndPost(canvas);
但它现在有效,屏幕闪烁。
然后我用
for (int i = 0;i < 10;i++) {
Canvas canvas = mSurfaceHolder.lockCanvas();
Paint p = new Paint();
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
canvas.drawPaint(p);
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
mSurfaceHolder.unlockCanvasAndPost(canvas);
}
它有效,为什么?