안드로이드 초보편

터치이벤트(TouchEvent) 커스텀컴포넌트

Rabbit foot 2017. 6. 20. 12:35
반응형
SMALL

터치이벤트(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) 터치이벤트 커스텀컴포넌트 실행결과입니다.

 

 

손으로 터치하였을때 터치이벤트입니다. 안드로이드 앱개발에 특히 게임개발에

자주는 코드라고 생각합니다.

이번 포스트까지 커스텀컴포넌트 예제를 통해서 다양한 코드을 작성해 보았습니다.

다음 포스트도 커스텀컴포넌트를 통한 코드를 연습해 보겠습니다.

반응형
LIST