public class targetView extends ImageView{ //총알자국 뿌리기 위해 imageView 상속
BitmapDrawable mBmDrawable = null;
public targetView(Context context){
super(context);
mBmDrawable = (BitmapDrawable) context.getResources().getDrawable(R.drawable.bullethole);
//mBmDrawble에 총알 이미지 불러옴
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
canvas.drawBitmap(mBmDrawable.getBitmap(), x, y, null); //mbmDrawable을 그림.
super.onDraw(canvas);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
x = event.getX(); //누를 때마다 x,y값 좌표 전달
y = event.getY();
invalidate();
return true;
}
return false;
}
}
이 소스는
1. onDraw로 비트맵 그림. (x,y값은 초기에 -100, -100으로 설정해서 화면에 보이지 않음)
2. TouchEvent가 발생(Action_down)할 때마다 x,y에 눌렸을 때의 x,y값을 받아옴
3. invalidate(); 로 현재 클릭한 부분에 비트맵 이미지가 그려짐.
이런 식으로 동작하고 있습니다.
지금 소스는 계속 x,y를 받아와서 invalidate()를 매번 불러오기 때문에 클릭한 좌표에 이미지가 생기고 이전에 찍었던 비트맵은 사라집니다..ㅠㅜ
저는 이전에 그려진 이미지도 남아있고 사용자가 터치를 하면 이미지가 '또' 그려지도록 하고 싶습니다.
또 Action_move를 누르면 사용자가 움직이는 대로 이미지들이 연달아 추가되게 하고 싶어요.
어떻게 건드려야 할 지 감이 잡히지 않습니다. 동적 배열을 사용해야 하나요? 또 사용해야 한다면 어떻게 사용해야 하나요? 동적 배열이 아니라면 어떻게 해야 이전에 찍었던 비트맵이 사라지지 않을 지 궁금합니다..ㅠㅠ