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

클릭할 때마다 이미지가 추가되게 하고 싶습니다

0 추천

 

화면을 클릭하면 R.drawable.bullethole이 클릭한 좌표에 나타나도록 하기 위해서

onDraw에 이미지를 그려놓고(기본 좌표는 -100, -100) 

onTouchEvent가 발생할 때마다 x,y값을 받아와서 적용하는데요

onDraw안에 onTouchEvent를 넣을수가 없어서 따로 분리를 하다보니

자꾸 invalidate가 되어서 이전 자국은 사라지고 새 좌표에 하나만 뜹니다

저는 누를 때마다 이미지가 추가되는.. 이전 클릭 지점에도 남아있게 하고 싶거든요

 

public class MainActivity extends Activity {
	private MyView mview;
	
	float x = -100;
	float y = -100;
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	
		mview = new MyView(this);
		setContentView(mview);
		mview.setFocusable(true);
		mview.setFocusableInTouchMode(true);
	}

	class MyView extends View{
		BitmapDrawable mBmDrawable = null;
		
			MyView (Context context){
				super(context);
				
				mBmDrawable = (BitmapDrawable)context.getResources().getDrawable(R.drawable.bullethole);
			
			}

			@Override
			protected void onDraw(Canvas canvas) {
				
				canvas.drawBitmap(mBmDrawable.getBitmap(),x, y, null);
				super.onDraw(canvas);
			}

			@Override
			public boolean onTouchEvent(MotionEvent event) {
				// TODO Auto-generated method stub
				if(event.getAction()==MotionEvent.ACTION_DOWN){
					x=event.getX();
					y=event.getY();
					invalidate();
					//mPool.play(mDdok, 1, 1, 0, 0, 1);
					return true;
				}
				return false;
			}
	}
}

 

 

어디를 건드려야 이전 이미지가 계속 남을까요? 자세히 설명부탁드려요ㅠㅠ

 

바른소리 (330 포인트) 님이 2013년 5월 31일 질문

1개의 답변

0 추천
onDraw를 써야만 하는가를 먼저 생각해보고 설계를 하는게 나을거같은데요.

질문이 이해가 안가는데, 어떤 도형이 있고, 그 도형을 드래그하면 원래 위치에도 남고 터치를 뗸 부분에도 남게 만들고 싶다는 말씀이신가요?

 

그런거라면 bullethole 이미지를 bitmap으로 만들어서 먼저 디폴트 10, 10 위치에 놔두고,

onTouch down 시 bitmap을 복사해서

touch move와 up 시 setX, setY로 좌표 지정해주면 원하는 대로 객체를 복사시킬수가 있겠죠.

 

무엇보다도 질문을 명확히 해주셔야 원하는 답변을 얻을수가 있을듯
기초개발자 (24,060 포인트) 님이 2013년 5월 31일 답변
터치 한 번 할 때마다 총을 쏘는 것 같은 효과를 주고 싶습니다. 그래서 현재 질문글에 올린 소스는 onDraw로 bullethole이라는 비트맵 이미지가 그려지게 하고 x값과 y값을 onTouchEvent에서 액션 무브 할 때마다 받아오는 중입니다. 저는 이전에 찍었던 걸 전부 남겨놓고 싶은 거구요. onTouchDown이라는 건 터치이벤트에서 모션이벤트가 액션_다운일 때를 말씀하시는건가요?
...