11
ビューの絶対座標を取得する方法
ビューの左上隅の絶対スクリーンピクセル座標を取得しようとしています。しかし、すべてのメソッドは、私のような見つけることができますgetLeft()し、getRight()これを私に与えて、彼らはすべてのビューの親に対するように見えるように動作しません0。これを行う適切な方法は何ですか? それが役立つ場合、これは「画像を順番に戻す」ゲーム用です。ユーザーがボックスを描いて複数のピースを選択できるようにしたい。私の仮定は、それを行うための最も簡単な方法はにあるということであるgetRawX()とgetRawY()からMotionEvent、その後の作品を保持したレイアウトの左上隅に対するそれらの値を比較します。ピースのサイズがわかったら、選択されたピースの数を判断できます。私が使用することができ実現getX()とgetY()にMotionEvent、それ戻る片がより困難に選択されたかを決定することができる相対位置として。(不可能ではない、私は知っている、しかしそれは不必要に複雑に思われる)。 編集:これは、質問の1つに従って、保持コンテナーのサイズを取得するために使用したコードです。TableLayoutすべてのパズルのピースを保持するテーブルです。 TableLayout tableLayout = (TableLayout) findViewById(R.id.tableLayout); Log.d(LOG_TAG, "Values " + tableLayout.getTop() + tableLayout.getLeft()); 編集2:提案された回答の詳細に従って、私が試したコードは次のとおりです。 public int[] tableLayoutCorners = new int[2]; (...) TableLayout tableLayout = (TableLayout) findViewById(R.id.tableLayout); tableLayout.requestLayout(); Rect corners = new Rect(); tableLayout.getLocalVisibleRect(corners); Log.d(LOG_TAG, "Top left " + corners.top + ", " + corners.left + ", " + …