如何获得我的 TextView 的像素的确切位置?
Posted
技术标签:
【中文标题】如何获得我的 TextView 的像素的确切位置?【英文标题】:How to get exact position in pixels of my TextView? 【发布时间】:2018-04-28 23:44:21 【问题描述】:我有一部 2560 x 1440 像素的智能手机。现在我将这个函数用于我的TextView
:
int[] locationOnScreen = new int[2];
txtAp.GetLocationInWindow(locationOnScreen);
它应该给我以像素为单位的总 x 和 y 坐标。
我的TextView
几乎在屏幕中间,所以应该在
(1280,770)。但该函数返回 [69, 1111]。
怎么可能?如果这不是这样做的方式,那是什么?
【问题讨论】:
【参考方案1】:我有一部 2560 x 1440 像素的智能手机...我的
TextView
几乎在屏幕中间,所以应该是 (1280,770)。
不正确,除非您谈论TextView
的中心。任何视图都在其矩形内呈现在屏幕上,因此其坐标被认为是 [left, top, right, bottom]。
GetLocationInWindow()
方法返回视图的(左、上)坐标。所以 (x = 69, y = 1111) 看起来对位于屏幕中间的TextView
的左上角有意义。
重要提示:GetLocationInWindow()
返回根视图的坐标,而不是实际窗口。你应该take the status bar height into consideration。以下是计算 Height of status bar in android 的方法。
【讨论】:
以上是关于如何获得我的 TextView 的像素的确切位置?的主要内容,如果未能解决你的问题,请参考以下文章