繁体   English   中英

当View以边距定位时,如何获取View的X坐标?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM