画面タッチは onTouchEvent を使えばを検出でき、その後に指を離した等は MotionEvent から状況を取得できます。
Android Studio
2024.1.1
2024.1.1
onTouchEvent
onTouchEventでのタッチ反応はMotionEventの ACTION_DOWN、あるいは ACTION_UP から取得することができます。
またMotionEventではタッチの移動も取り出せるので、画像などをドラッグしていくことが可能です。
MotionEvent
MotionEvent の関連はたくさんありますがよく使うメソッドはこちら
- getX(), getY()
- スクリーンの座標(pixel)
- getAction()
- ACTION_DOWN
- タッチダウン
- ACTION_MOVE
- タッチしたまま移動
- ACTION_UP
- タッチアップ
- ACTION_CANCEL
- UPとDOWNが同時に発生した
- ACTION_DOWN
- getDownTime()
- press downした時間
- getEventTime()
- イベント発生時間、uptimeMillis「ブートからの時間(msec)」
- getPressure()
- タッチ圧力
画面がタッチされた時にonTouchEventが呼ばれ
どのMotionEventなのかswitchで振り分けていきます。
サンプルコード
画面タッチでその情報が表示され、ボタンタップで表示がリセットされるサンプルです。
MainActivity.java
レイアウトファイルです
activity_main.xml
strings.xml
タッチ期間は
long eventDuration = motionEvent.getEventTime() – motionEvent.getDownTime();
で計算します
onTouchEventとは違いますが、似たものとしてonTouchがあります。これを使って画像などをドラッグすること等ができます。
アイコン画像をドラッグしてごみ箱に入れるなどの、ドラッグをAndroidでやる場合にonTouchを使います。タッチした指の動きに合わせてl...
References:
onTouchListener | Android Developers
MotionEvent | Android Developers