2012-05-05 7 views
0

どのようにアンドロイドでビットマップを削除しますか?私は「太陽」と呼ばれるビットマップを作成しましたが、画面を横切って歩いている人が終了すると、「月」と呼ばれる新しいビットマップを追加したいのですが、太陽の上に作成されます太陽のビットマップを削除しますか?ここに歩いている男のための私のコードです。アンドロイドでビットマップを削除する

switch (counter) 
    { 

    case 0: 
     skyRect.set(0, 0, canvas.getWidth(), 400); 
     canvas.drawRect(skyRect, sky); 
     canvas.drawBitmap(AndroidDude, changingX, (canvas.getHeight()/2 - (AndroidDude.getHeight()/2)), null); 
     if (changingX < canvas.getWidth()) 
     { 
      changingX += 10; 
     } 
     else 
     { 
      changingX = 0; 
      sunChangingX = 0; 
      counter++; 
     } 

     grassRect.set(0, 400, canvas.getWidth(), canvas.getHeight()); 
     canvas.drawRect(grassRect, grass); 
     canvas.drawBitmap(cloud, 100, 50, null); 
     canvas.drawBitmap(cloud, 700, 100, null); 
     canvas.drawBitmap(sun, (canvas.getWidth() - sun.getWidth()), 0, null); 
     invalidate(); 
     break; 

    case 1: 
     //Remove sun and clouds here? 
     canvas.drawBitmap(moon, (canvas.getWidth() - moon.getWidth()), 0, null); 
     canvas.drawBitmap(AndroidDude, changingX, (canvas.getHeight()/2 - (AndroidDude.getHeight()/2)), null); 
     if (changingX < canvas.getWidth()) 
     { 
      changingX += 10; 
     } 
     else 
     { 
      changingX = 0; 
      counter++; 
     } 
     grassRect.set(0, 400, canvas.getWidth(), canvas.getHeight()); 
     canvas.drawRect(grassRect, grass); 
     canvas.drawBitmap(cloud, 100, 50, null); 
     canvas.drawBitmap(cloud, 700, 100, null); 
     canvas.drawBitmap(sun, sunChangingX, 0, null); 
     invalidate(); 
     break; 
    } 

答えて

1

削除したいビットマップ上に背景(空と草)を再描画します。リフレッシュ機能を作ります。

0

古いものの上に新しいものを描画するだけです。何かを "消去"する必要がある場合は、バックグラウンドを再描画するだけです。

0
Canvas.drawColor(Color.WHITE); 

または

あなたはWHITE色で四角形を描画することができますので、 キャンバスをきれいにすることができます。

//または何らかのあなたのキャンバスの色

キャンバスが空白になっているように見えます。

あなたが今までに望むものを再び描画します。

出力は白色で表示されます。

関連する問題