728x90
반응형
【 안드로이드 스튜디오 】 - 일반 제스처 감지와 처리하기
# 일반 제스처 감지와 처리하기
@ 일반제스처를 감지하는 절차
onFling(), onDown(), onScroll(), onShowPress(), onSingleTapUp(), onLongPress() 콜백 메서드들을 포함하는 GestureDetector.OnGestureListener 인터페이스를 구현하는 클래스를 정의한다.
그러나 더블 탭 제스처를 감지할 필요가 있을 때는 그 클래스에서 GestureDetector.OnDoubleTapListener 인터페이스와 onDoubleTap() 메서드도 함께 구현해야 한다.
액티비티의 onTouchEvent() 콜백 메서드를 구현한다. 이때 그 시점의 MotionEvent 객체를 그 메서드의 인자로 전달한다.
onFilng() // 수평 또는 수직 방향으로 밀기
onDown() // 누름
onScroll() //
onShowPress() //
onSingleTapUp() // 탭(터치)
onLongPress() // 길게 누름
onDoubleTap() // 더블 탭(더블 터치)
@ activity_common_gestures.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.admin.commongestures.CommonGestures"> <TextView android:id="@+id/gestureStatusText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout> | cs |
@ CommonGesture.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | package com.example.admin.commongestures; import android.nfc.Tag; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.GestureDetector; import android.view.MotionEvent; import android.widget.TextView; public class CommonGestures extends AppCompatActivity implements GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener { private TextView gestureText; private GestureDetector gDetector; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_common_gestures); gestureText = (TextView)findViewById(R.id.gestureStatusText); this.gDetector = new GestureDetector(this,this); gDetector.setOnDoubleTapListener(this); } @Override public boolean onTouchEvent(MotionEvent event){ this.gDetector.onTouchEvent(event); // 오버라이딩한 슈퍼 클래스의 메서드를 호출한다. Log.i("tag","onTouchEvent"); return super.onTouchEvent(event); } @Override public boolean onSingleTapConfirmed(MotionEvent motionEvent) { gestureText.setText("onSingleTapConfirmed"); Log.i("tag","onSingleTapConfirmed"); return true; } @Override public boolean onDoubleTap(MotionEvent motionEvent) { gestureText.setText("onDoubleTap"); Log.i("tag","onDoubleTap"); return true; } @Override public boolean onDoubleTapEvent(MotionEvent motionEvent) { gestureText.setText("onDoubleTapEvent"); Log.i("tag","onDoubleTapEvent"); return true; } @Override public boolean onDown(MotionEvent motionEvent) { gestureText.setText("onDown"); Log.i("tag","onDown"); return true; } @Override public void onShowPress(MotionEvent motionEvent) { gestureText.setText("onShowPress"); Log.i("tag","onShowPress"); } @Override public boolean onSingleTapUp(MotionEvent motionEvent) { gestureText.setText("onSingleTapUp"); Log.i("tag","onSingleTapUp"); return true; } @Override public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) { gestureText.setText("onScroll"); Log.i("tag","onScroll"); return true; } @Override public void onLongPress(MotionEvent motionEvent) { gestureText.setText("onLongPress"); Log.i("tag","onLongPress"); } @Override public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) { gestureText.setText("onFling"); Log.i("tag","onFling"); return true; } } | cs |
@ Memo
이전시간에 배웠던 Log.i 에 메세지를 남겨두어서 복,붙이 쉽도록 했다.
사실 워낙 순식간에 text가 바뀌어서 읽기 어려웠다. ㅠㅠ
http://insurang.tistory.com
728x90
반응형
'Programing (프로그래밍) > Android Studio (안드로이드 스튜디오)' 카테고리의 다른 글
⟪Do it! 안드로이드 앱 프로그래밍⟫ 개정 5판 (0) | 2018.02.12 |
---|---|
【 Android Studio 】 - 토스트 메세지 띄우기 ( Toast Message ) (0) | 2017.12.01 |
Android Studio (안드로이드 스튜디오) - 처음 앱 셋팅하기 / Autoconnect (0) | 2017.11.23 |
Android Studio (안드로이드 스튜디오) 첫번째 어플리케이션(APP) 만들기 (2) | 2017.11.22 |
[ 안드로이드 스튜디오 ] 터치와 다중 터치 이벤트 처리하기 (0) | 2017.11.16 |
[안드로이드 스튜디오] - 액티비티 생명주기 (0) | 2017.11.09 |
[안드로이드 스튜디오] - 핸드폰에서 USB 디버깅 하기 (0) | 2017.11.02 |
Android Studio (안드로이드 스튜디오) 개발환경 구성하기 (0) | 2017.09.04 |