基本なタッチイベントについて

基本的なタッチイベント
基本的なタッチイベントの取得、検知には
android.viewパッケージの
Viewクラスの
OnTouchListenerインターフェース
を使う
OnTouchListenerを実装したリスナーを
ビューに適用すると
そのビューのタッチイベントを取得できる
タッチイベントのハンドラとして
OnTouchListenerインターフェースには
onTouch()
が用意されている
onTouch()の
第1引数に、タッチされたビューオブジェクト
第2引数に、イベント情報を持つ MotionEvent
が引き渡される
このMotionEventには
タッチされた座標
タッチイベントの種類
などの情報が含まれている
MotionEventの
getActionMasking()

タッチイベントの種類を数値で取得できる
取得した数値は
MotionEventのイベント種別用定数により
どのようなタッチイベントが発生したか
判定できる
これを使えば、switchによる
条件分岐もできる
MotionEventの定数の代表的なものとして
ACTION_MOVE
ドラッグしたときのイベント判定
ACTION_CANCEL
タッチイベントをキャンセルしたときの
イベント判定
ACTION_OUTSIDE
タッチイベント対象以外をタッチしたときのイベント判定
getActionMasked()は
タッチイベントの種類を数値で取得したけど
これ以外にも
MotionEventのメソッドは存在する
以下はその一部
getX()
タッチされたX座標
getY()
タッチされたY座標
getDownTime()
タッチされていたミリ秒単位の時間
getEdgeFlags()
対象のビューの端をタッチしたかを判定
getPressure()
タッチされた圧力
getSize()
タッチされている範囲
画面のタッチイベントの取得は
Activityの
onTouchEvent()

override
することでも取得できる
ソースにすると
public boolean onTouchEvent(MotionEvent event){
onTouchEvent()の引数には
MotionEventが渡されるので
タッチイベントの種類、座標などが同様に取得できる
実は
onTouchEvent()は
Viewクラスにも定義されているので
Viewクラスを継承したビュークラスで
overrideして
そのビューのタッチイベントを取得するこもできる
public class TouchScreen extends View{
public boolean onTouchEvent(MotionEvent event){

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です