我通过Activity的主XML文件插入了16dp
。它与父项左上角对齐,但顶部和左侧边距设置为myImageView.getX()
。
我将此视图拖动到屏幕周围,并在释放时将其设置为初始位置。
如何在没有硬编码的情况下找到初始X值?将dp像素转换为简单像素后,正确值为42 px。如果我调用方法0.0
,则返回{{1}}。
答案 0 :(得分:1)
尝试通过
获得排名 Rect targetRect = new Rect();
myImageView.getLocalVisibleRect(targetRect);
int x = myImageView.getTop());
int y = myImageView.getLeft();
答案 1 :(得分:1)
您可以使用view
和getLeft()
获取getTop()
相对于其父级的位置。
来自谷歌开发者文档:
可以通过调用来检索视图的位置 方法getLeft()和getTop()。前者返回左边,或者X, 表示视图的矩形的坐标。后者回归 表示视图的矩形的顶部或Y坐标。 这些方法都返回视图相对于它的位置 家长。例如,当getLeft()返回20时,表示视图 位于其直接左边缘右侧20像素处 父节点。
这意味着您可以使用以下代码段获取x:
int x = imageView.getLeft();