1つのビューアイテムのタッチイベントを処理して、画面から実際の(x、y)を取得するのに問題があります。
私はこれを持っています:
[表示]アイテムをタッチすると、左上隅にある原点との座標が表示されます。指をビューからスライドさせると、負の座標が表示されます(上または左にスライドした場合)。
画面内のビューの場所を取得して、取得した(x、y)座標に追加したいので、最終的には(0,0)が画面全体の左上隅になります。 。
指が右下隅にあるかどうかがわかるように、画面の合計サイズも必要です。
どうすればこれを達成できますか?
ありがとう。
MotionEventクラスにはgetX()
メソッドとgetY()
メソッドがあり、ご存知のとおり、ビューに関連する座標を返します。
ただし、getRawX()
メソッドとgetRawY()
メソッドもあり、ドキュメントによると次のようになっています。
このイベントの元の生のX(またはY)座標を返します。画面上のタッチイベントの場合、これは、含まれているウィンドウとビューに合わせて調整される前の、画面上のイベントの元の場所です。
このように聞こえますが、あなたが求めているものです。
ビューが画面に読み込まれた後、これを使用してみてください。
int[] location = new int[2];
View.getLocationOnScreen(location);
Log.v(Common.TAG,"left: "+ location[0]);
Log.v(Common.TAG,"top: "+ location[1]);
画面上のView
の位置を取得すると、単純な算術演算を使用して残りを計算できます。 ビューの絶対座標を取得する方法