如何在重绘时保存先前绘制到画布上的对象?

2023-12-05

每次重绘 SurfaceView 时,之前绘制的内容都会被擦除。如何保存它们的状态,以便我的循环将新对象添加到屏幕上而不删除旧对象?


用一个画Bitmap:

Bitmap mDrawBitmap;
Canvas mBitmapCanvas;
Paint mDrawPaint = new Paint();

@Override
public void onDraw(Canvas canvas) {

    if (mDrawBitmap == null) {
        mDrawBitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
        mBitmapCanvas = new Canvas(mDrawBitmap);
    }

    // draw on the btimapCanvas
    //... and more
    mBitmapCanvas.drawWhatever(...);

    // after drawing with the bitmapcanvas,
    //all drawn information is stored in the Bitmap       

    // draw everything to the screen
    canvas.drawBitmap(mDrawBitmap, 0, 0, mDrawPaint);
}

这样,“mDrawBitmap”将始终包含当前绘制的状态。如果您愿意,可以通过调用来清除它mBitmapCanvas.drawColor(Color.WHITE);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在重绘时保存先前绘制到画布上的对象? 的相关文章

随机推荐