私はクラスをViewGroup
に拡張し、すべてからMotionEvent
を取得したいと思います。これまでのところ私はこれを持っている:ViewGroup内のMotionEventのトレース
class TestViewGroup extends ViewGroup {
public TestViewGroup(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.d("TestViewGroup", "X: " + (int)event.getX() + " Y: " + (int)event.getY());
return true;
}
}
onTouchEvent(MotionEvent event)
方法はMotionEvent
私は、画面上で私の指を置くたびに捕捉することができます。しかし、指がまだ下にある間に指を画面の周りに動かすと、指の座標を追跡し続けることはありません。私は、View
を拡張するクラスでは、View
を動かすときに指を辿ることが可能であることを知っています。私はちょうどViewGroup
に同じアイデアを適用することが可能であるかと思っています。
あなたは正しく、ViewまたはViewGroupとは関係ありませんが、実際にどのように統合しているかとは関係しています。私はViewGroupをシステムのWindowManagerに入れようとしているので、システムオーバーレイ上に永続的に留まることができます(基本的にどのアクティビティが上にあってもビューを表示します)。 WindowManagerにViewを追加すると、タッチイベントがどのようにそれに渡されるかが分かりますか? – Brian
@AeroDroid ...面白いことのように聞こえる、私は別の質問を開いて再熟語を提案し、またいくつかのコードを追加します。イベントを取得する際にもう少し堅牢であるように思われるので、@Override public boolean dispatchTouchEvent(MotionEvent event){}を試してみてください。 – Idistic
ちょっと前に新しい質問を開いたばかりですここでそれを見てください[ここ](http://stackoverflow.com/questions/6725636/getting-all-motionevents-with-windowmanager-layoutparams-flag-watch-outside-touch)。 – Brian