2012-05-05 3 views
0

어떻게 안드로이드에서 비트 맵을 제거합니까? 나는 "sun"이라고 불리는 비트 맵을 만들었지 만 화면을 가로 질러 걷는 남자가 끝나자 마자 "moon"이라는 새로운 비트 맵을 추가하고 싶지만 태양의 꼭대기에 생성된다. 어떻게하면 좋을까? 태양 비트 맵을 제거 하시겠습니까? 여기 걷는 사람에 대한 내 코드입니다.안드로이드에서 비트 맵 제거

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 색상으로 사각형을 그릴 수 있도록 캔버스를 청소해야 할 수 있습니다.

// 또는 무엇이든 캔버스 색상

그것은 빈 캔버스처럼 보이는 것입니다.

그리고 원하는 것을 다시 그립니다.

출력이 흰색으로 표시됩니다.

관련 문제