Android, Canvas: Wie lösche (lösche ich den Inhalt einer) Canvas (= Bitmaps) in einem SurfaceView?

Um ein einfaches Spiel, ich benutzte eine Vorlage, zieht eine Leinwand mit bitmaps wie diese:

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

(Die Leinwand ist definiert in der "run()" /die SurfaceView lebt in einem GameThread.)

Meine erste Frage ist wie lösche ich (oder zeichnen) die ganze Leinwand für ein neues layout?

Zweitens, wie kann ich das update nur ein Teil des Bildschirms?

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

InformationsquelleAutor der Frage samClem | 2011-04-20

Schreibe einen Kommentar