2019-03-15動画のように画面に指を触れて動かしたときの移動量を取得できるようなプログラムを作ってみた。関連記事TouchableFragmentクラス今回はフラグメントを使用してタッチイベントのフックを行った。TouchableFragmentクラスを作成し、フラグメントのレイアウトファイルにイベントフック専用のビューであるtouchableViewを配置した。このビューをフラグメントのonCreateViewで取得しリスナー登録を済ませておく。次にTouchableFragmentクラスにView.OnTouchListenerインタフェースを実装する。そのメンバメソッドであるonTouchメソッドを次のようにオーバーライドする。今回は移動量を計算させているが他にもVelocityTrackerを使って指の速度を得ることも出来るようになっている。詳しくはこちらを参考にしてもらいたい。movementsさてTouchableFragmentクラスの全体のプログラム内容は次のようになっている。MainActivityクラス次にMainActivityクラスでの実装を行っていく。アクティビティのレイアウトファイルの左半分にはテキストビューを設置し、右半分にはフラグメントを入れ込むためにフレームレイアウトを設置した。MainActivityから動的にフラグメントを生成させるためのコードは次のようになる。フラグメントをファクトリメソッドで生成し引数を渡せるようにしている。フラグメントからのコールバックを受けて取れるようにインターフェースを使った実装を行っている。先頭のactionDown、actionMove、actionUpメソッドはTouchableFragmentからのコールバック関数となる。actionMoveでは指の移動量が渡されるのでその値をテキストビューにセットして表示させている。最後にプロジェクトを実行し、画面右半分の中で指を動かせばテキストビューに移動量が表示されるだろう。タッチイベントの処理をアクティビティに直接書いてしまうとアクティビティが読みづらくなってしまうので、このようにフラグメントに追い出した方が管理しやすくなるので参考にしたい。