마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

canvas로 구현한 화면에 롤오버튼을 만들고 싶습니다

0 추천
public class GameView extends SurfaceView implements SurfaceHolder.Callback {

 private ImageThread thread;  //스레드
 private TextView mStatusText;
 
 //노(방향키)
 private Bitmap oar[] = new Bitmap[4];
 private Rect oarSrc = new Rect(0,0,0,0);
 private Rect oarleftupDst = new Rect(0,0,0,0);
 private Rect oarleftdownDst = new Rect(0,0,0,0);

class ImageThread extends Thread {
  private SurfaceHolder mSurfaceHolder;

  
  // 이미지 할당
  public ImageThread(SurfaceHolder surfaceHolder, Context context, Handler handler) {
   mSurfaceHolder = surfaceHolder;
   isLoop=true;
   Resources res = context.getResources();


   oar[0] = BitmapFactory.decodeResource(res, R.drawable.oarleftdown);
   oar[1] = BitmapFactory.decodeResource(res, R.drawable.oarrightdown);

public void run() {
-생략-
}


//그리기
private void doDraw(Canvas canvas) {
      // Draw the background image. Operations on the Canvas accumulate
      // so this is like clearing the screen.
      
      drawOar(canvas);


  }

private void drawOar(Canvas canvas){
  int w = getWidth();
  int h = getHeight();
  
  oarSrc.left = 0;
  oarSrc.top = 0;
  oarSrc.right = oarSize_w;
  oarSrc.bottom = oarSize_h;
  
  oarleftdownDst.left = (int)w-(4*oarSize_w);
  oarleftdownDst.top = (int)h - (2*oarSize_h)+50;
  oarleftdownDst.right = oarleftdownDst.left + oarSize_w;
  oarleftdownDst.bottom = oarleftdownDst.top + oarSize_h;
  if(!Isoar)//터치 업 이면
   canvas.drawBitmap(oar[0], oarSrc, oarleftdownDst,null);
  else /// 터치 다운이면
   canvas.drawBitmap(oar[2], oarSrc, oarleftdownDst,null);
  
  oarrightdownDst.left = (int)w-oarSize_w-20;
  oarrightdownDst.top = (int)h - (2*oarSize_h)+50;
  oarrightdownDst.right = oarrightdownDst.left + oarSize_w;
  oarrightdownDst.bottom = oarrightdownDst.top + oarSize_h;
  canvas.drawBitmap(oar[1], oarSrc, oarrightdownDst, null);
 }
   

안드로이드를 처음 접하는 초보자 입니다만...

서피스 뷰를 상속받아 canvas로 구현한 화면에 롤오버 버튼(?)처럼 비트맵을 그리는 방법...

제가 만들고자 하는건 좌,우 방향키의 이미지가 노(oar)로 되어있고, 기본적으로 노가 아래로 향한 이미지가 배치되어있습니다. 해당 위치에 터치가 될때마다 노가 위로 올라간 이미지를 그리고, 터치가 안되면 다시 기본 이미지로 돌아오게 하고 싶습니다.

문제점은 터치가 되면 기존에 그렸던 '노가 아래로 향했던 이미지' 와 터치 후 그린 '노가 위로 향하는 이미지'가 겹쳐집니다.

 

이전에 그렸던 이미지가 보이지 않게 하는 방법 없을까요??

 

 

 

 

코드코딩버그 (140 포인트) 님이 2014년 6월 13일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...