FC2ブログ

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

基本的なタッチイベント

基本的なタッチイベントの取得、検知には
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){
スポンサーサイト



コメント

非公開コメント

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック