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)로 되어있고, 기본적으로 노가 아래로 향한 이미지가 배치되어있습니다. 해당 위치에 터치가 될때마다 노가 위로 올라간 이미지를 그리고, 터치가 안되면 다시 기본 이미지로 돌아오게 하고 싶습니다.
문제점은 터치가 되면 기존에 그렸던 '노가 아래로 향했던 이미지' 와 터치 후 그린 '노가 위로 향하는 이미지'가 겹쳐집니다.
이전에 그렸던 이미지가 보이지 않게 하는 방법 없을까요??