▩ 터치이벤트(TouchEvent)커스텀컴포넌트 ▩
손으로 스마트폰을 직접 터치하여 이벤트를 처리할수 있다. 터치이벤트는 흔하게 사용하기때문에 특히 게임에서 중요한 부분을 차지한다.
터치이벤트 커스텀컴포넌트를 사용하기 위해서는 2가지 방식으로 처리해 보자!
● 뷰의 콜백 메소드 재정의 : onTouchEvent(MotionEvent e)를 재정의합니다.
● 리스너 등록: onTouch(View v, MotionEvent e)를 재정의합니다.
(1) 터치이벤트(TouchEvent) 프로젝트 파일을 생성합니다.
(2) TouchEventActivity.java 파일을 엽니다.
터치이벤트 코드 작성을 합니다.
public class TouchEventActivity extends ActionBarActivity {
protected class MyView extends View {
int x =100, y =100;
String str;
public MyView(Context context){
super(context);
setBackgroundColor(Color.YELLOW);
}
protected onDraw(Canvas canvas){
Paint paint = new Paint();
paint.setColor(Color.MAGENTA);
canvas.drawRect( x, y, x+100, y+100, paint);
paint.setTextSize(50);
canvas.drawText("액션의 종류:"+str, 0,100, paint);
※ 아래화면을 보시면 코드을 다시한번 써어봅니다.
public boolean onTouchEvent(MotionEvent event){
x = (int) event.getX();
y = (int) event.getY();
if(event.getAction() == MotionEvent.ACTION_DOWN)
str = " ACTION_DOWN";
if(event.getAction() == MotionEvent.ACTION_MOVE)
str="ACTION_MOVE";
if(event.getAction() == MotionEvent.ACTION_UP)
str ="ACTION_UP";
invalidate(); → 화면을 무효화하여서 화면을 다시 그리게 한다.
return true;
}
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
MyView w = new Myview(this);
setcontentview(w);
}
}
3) 터치이벤트 커스텀컴포넌트 실행결과입니다.
손으로 터치하였을때 터치이벤트입니다. 안드로이드 앱개발에 특히 게임개발에
자주는 코드라고 생각합니다.
이번 포스트까지 커스텀컴포넌트 예제를 통해서 다양한 코드을 작성해 보았습니다.
다음 포스트도 커스텀컴포넌트를 통한 코드를 연습해 보겠습니다.