안녕하세요.  JAVA 와 안드로이드 개발을 처음 접하는 초보입니다.

 

첫 번째 질문.

일반적으로 게임과 같이 여러 이미지들을 자유자재로 화면에 그리려면 Thread를 생성하고, Thread 의 run() -> while loop 안에서

canvas에 bitmap을 그리는 방식을 사용하는것 같더군요.

그래서 위와 같이 기본 App.  프레임을 만들고, run()의 while loop에서 호출되는  함수(show_bitmaps())를 작성했습니다.

함수의 목적은 10장이상의 bitmap을 화면에 그려주는데, 한꺼번에 그리는게 아니라 한장씩 그림이 추가되는 것을

사용자가 알 수 있게 천천히 그려 주는 것이죠(예전 SKT의 LTE폰 광고에서 네개의 네모가 하나씩 쿵, 쿵, 쿵, 쿵 도장 찍히는 것처럼..ㅋ)

 

show_bitmaps() {  // 설명을 위해 주요 코드들만 간략히 붙였어요

  Canvas canvas = null;

  for ( i = 0 ; i < 10 ; i++){

    canvas =  mySurfaceHolder.lockCanvas();

    canvas.drawBitmap(bitmap[i] ....)

    Thread.sleep(100);

    mySurfaceHolder.unlockCanvasAndPost(canvas);

  } //end for

}

--> 이와 같이 했더니 10장의 bitmap 중 일부만 보입니다...

 

그래서 아래와 같이 수정했더니..

show_bitmaps() {  //  

   Canvas canvas = null;

    canvas =  mySurfaceHolder.lockCanvas();

  for ( i = 0 ; i < 10 ; i++){

    canvas.drawBitmap(bitmap[i] ....)

    Thread.sleep(100);

  } //end for

    mySurfaceHolder.unlockCanvasAndPost(canvas);

 }

 

이번엔 10장의 카드가 다 그려진 상태로 화면에 출력됩니다. 원하는 건 한장씩 그림이 그려지는 것을 보여주고 싶은데요.

첫 번째 케이스에서 왜 일부의 bitmap만 보여지는지 궁금합니다.

 

두 번째 질문.

위의 두번째 함수로 화면에 그림을 다 그리고 난 후, 역시 run() 의 while () loop에서 다른 이벤트를 받으면 위 10개의 그림

위에 새로운 bitmap을 그리려고 역시 lockCanvas(), drawBitmap(), unlockCanvasAndPost()를 순서대로 호출하니까

앞서 10개의 bitmap은 모두 사라지고 마지막에 추가한 한장의 bitmap만 보입니다.

기존 10개의 이미지는 유지한 채 새로운 bitmap을 추가하려면 어떻게 해야 하나요?

 

기초적인 질문인 것 같은데 답을 찾기 어렵네요. -_-;

 

답변에 미리 감사합니다.