11
如何获取视图的绝对坐标
我正在尝试获取视图左上角的绝对屏幕像素坐标。但是,我可以找到的所有方法,例如getLeft()和getRight()都不起作用,因为它们似乎都与视图的父项有关,因此给了我0。正确的方法是什么? 如果有帮助,则用于“按顺序放回图片”游戏。我希望用户能够绘制一个框来选择多个片段。我的假设是,做到这一点的最简单方法是getRawX(),并getRawY()从MotionEvent再与之比较的布局保持件的左上角的值。知道了碎片的大小之后,我可以确定选择了多少碎片。我意识到我可以在上使用getX()和,但是那样会返回一个相对位置,这使得确定选择哪些作品更加困难。(我知道这不是没有可能,但似乎不必要地复杂)。getY()MotionEvent 编辑:根据问题之一,这是我用来尝试获取保存容器大小的代码。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 + ", " + …