タッチイベントをとりえする「onTouchEventとMotionEvent」

发布时间:2016-12-10 14:49:45 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"タッチイベントをとりえする「onTouchEventとMotionEvent」",主要涉及到タッチイベントをとりえする「onTouchEventとMotionEvent」方面的内容,对于タッチイベントをとりえする「onTouchEventとMotionEvent」感兴趣的同学可以参考一下。

ActivityとViewのTouchEvent onTouchEventの呼び出し優先順位は上位のView>下位のView>Activityです。 クラスとメソッド 説明 Activity.onTouchEvent Viewで消費されなかった場合、呼び出される View.onTouchEvent 上位レイヤーから順番に呼び出される   最も単純なソースコードは以下の通りです 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public class touchEventActivity extends Activity {     /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);     }       @Override     public boolean onTouchEvent(MotionEvent event) {         Log.d("TouchEvent", "X:" + event.getX() + ",Y:" + event.getY());         return true;     } }   onTouchEventメソッドの返り値は標準でfalseですが、今回は、trueとしています。返り値をtrueに設定すると「TouchEventを消化」したことになり、他のViewやActivityへの通知を抑制できます。   MotionEventの主なメソッドまとめ 特に使うシーンの多いMotionEventメソッド一覧です MotionEventメソッド名 説明 getX() , getY() タッチされてたX,Y座標 getAction() タッチイベントのアクション getDownTime() 押されていた時間(ms単位) getEdgeFlags() スクリーン端判定 getSize() タッチされている範囲、サイズ(推定) getEventTime() タッチされていた継続時間(ms単位) getPressure() タッチされた圧力 Actionの取得と発生順序 ctionの取得と発生順序 最もよく使うのは、UP,DOWN,MOVE,CANCELに代表されれるActionです。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 @Override public boolean onTouchEvent(MotionEvent event) {       Log.d("TouchEvent", "X:" + event.getX() + ",Y:" + event.getY());       switch (event.getAction()) {     case MotionEvent.ACTION_DOWN:         Log.d("TouchEvent", "getAction()" + "ACTION_DOWN");         break;     case MotionEvent.ACTION_UP:         Log.d("TouchEvent", "getAction()" + "ACTION_UP");         break;     case MotionEvent.ACTION_MOVE:         Log.d("TouchEvent", "getAction()" + "ACTION_MOVE");         break;     case MotionEvent.ACTION_CANCEL:         Log.d("TouchEvent", "getAction()" + "ACTION_CANCEL");         break;     }     return true; } MotionEvent.getAction()で取得できる動作 この中では ACTION_OUTSIDE が見慣れませんが、Viewの範囲外をタッチした場合に呼ばれます 定数名 説明 ACTION_DOWN 0x02 タッチ押下 ACTION_MOVE 0x00 指を持ち上げずにスライドさせた場合 ACTION_UP 0x01 指を持ち上げた場合 ACTION_CANCEL 0x03 UP+DOWNの同時発生(=キャンセル)の場合 ACTION_OUTSIDE 0x04 ターゲットとするUIの範囲外を押下 キャンセルの場合は、定数値0×03です。これはビットのOR演算で見ると、(0×02 | 0×01 )となり、DOWNとUPが同時に発生しています。ユーザーは短期間のうちに指を離したことから、操作しようとしてやめています。DOWN/UPアクションは行わず、キャンセルで良いでしょう。

上一篇:linux 高级删除命令 ----- 按时间删除
下一篇:布局管理器

相关文章

相关评论