先日moto e32sのタッチスクリーンがちょっと独特だったといった内容を書いたのですが、その際にスクリーンキャプチャを行ったとき、録画した時にスクリーンキャプチャアプリで触れている場所が正しく表示されていたので少し確認してみました。
手前味噌なアプリは、アプリレベルで実際にタッチ情報がどのように受け取られるのか?という疑問を解消するのが目的のアプリです。作成当時はKitKatとかそのへんなので、現状ではAndroidのバージョンがかなり上がってタッチ情報の扱いが拡張されているかも?という疑念はあるものの、e32sで考えられそうなのは3本指タッチによるスクリーンショットのジェスチャハンドリングかな?と。
そんなわけで、早速オフにして確認したところ…その通りだったようです。
タッチの筆圧はおそらく固定だし、2点を超えるポイントは固定で0.001になっている感じで、この辺の仕様は理解しがたいです。
ただ手前味噌なアプリの疑念はあるので、少し最新のドキュメントを確認しなければ…
ドキュメントを確認したところ、
https://developer.android.com/training/gestures/multi?hl=ja
幅広いプラットフォームに最適なサポートを提供するために、MotionEventCompat を使用する必要があります。MotionEventCompat は MotionEvent クラスの代替ではありません。むしろ、そのイベントに関連付けられた目的のアクションを受け取るために、MotionEvent オブジェクトを渡す静的ユーティリティ メソッドを提供します。
と言う注釈があり、MotionEventCompatクラスを使用することが推奨されていました。しかし、実際にソースでMotionEventCompat.getActionMasked(event);と記述してみると、現状(33?)ではすでにgetActionMaskedは非推奨となっていてgetActionを使えということになっていました。リンクはMotionEvent.getActionになっていたので、MotionEventCompatクラス自体は非推奨ではないものの、他にも非推奨となっているメソッドが多数ありました。MotionEventCompatクラスは無くなるんじゃないかな?この辺のいきさつはわかりませんが。
と言うことで、結果的に現状の実装では問題ないんじゃないかと。
やれそうなことは、最新のSDKでリビルドするぐらいかな?
0 件のコメント:
コメントを投稿