[英]How to get View's X coordinate when View is positioned with margins?
我已经通过Activity的主XML文件插入了一个ImageView
。 它与父母的左上角对齐,但16dp
边距设置为16dp
。 我在屏幕上拖动此视图,并在释放时为其设置动画到初始位置。
如何在不进行硬编码的情况下找到初始X值? 将dp像素转换为简单像素后,正确值为42 px。 如果我调用方法myImageView.getX()
它将返回0.0
。
尝试获得位置
Rect targetRect = new Rect();
myImageView.getLocalVisibleRect(targetRect);
int x = myImageView.getTop());
int y = myImageView.getLeft();
您可以使用getLeft()
和getTop()
获得view
相对于其父view
的位置。
从Google开发人员文档中:
通过调用方法getLeft()和getTop()可以检索视图的位置。 前者返回代表视图的矩形的左坐标或X坐标。 后者返回代表视图的矩形的顶部或Y坐标。 这些方法都返回视图相对于其父视图的位置。 例如,当getLeft()返回20时,这意味着该视图位于其直接父级的左边缘右侧20像素处。
这意味着您可以使用以下代码段获取x:
int x = imageView.getLeft();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.