小编sam*_*lem的帖子

Android,canvas:如何清除(删除内容)画布(= bitmaps),生活在surfaceView中?

为了制作一个简单的游戏,我使用了一个模板来绘制带有这样的位图的画布:

private void doDraw(Canvas canvas) {
    for (int i=0;i<8;i++)
        for (int j=0;j<9;j++)
            for (int k=0;k<7;k++)   {
    canvas.drawBitmap(mBits[allBits[i][j][k]], i*50 -k*7, j*50 -k*7, null); } }
Run Code Online (Sandbox Code Playgroud)

(画布在"run()"中定义/ SurfaceView存在于GameThread中.)

我的第一个问题是如何清除(或重绘)整个画布以获得新的布局?
其次,如何更新屏幕的一部分?

// This is the routine that calls "doDraw":
public void run() {
    while (mRun) {
        Canvas c = null;
        try {
            c = mSurfaceHolder.lockCanvas(null);
            synchronized (mSurfaceHolder) {
                if (mMode == STATE_RUNNING) 
                    updateGame();
                doDraw(c);          }
        } finally {
            if (c != null) {
                mSurfaceHolder.unlockCanvasAndPost(c);  }   }   }       }
Run Code Online (Sandbox Code Playgroud)

android surfaceview android-canvas

88
推荐指数
7
解决办法
14万
查看次数

标签 统计

android ×1

android-canvas ×1

surfaceview ×1