android - 如何在 Android 中获取相对于另一个 View 的 View 位置?

标签 android android-imageview android-view

我正在为 Android 制作一个应用程序,它使用 ImageView 在屏幕上显示相机图像(经过一些操作后),我想允许在屏幕上移动其他 ImageViews - 但只能在父 ImageView 内部移动。

此外,我需要获取 subview 相对于父 ImageView 坐标的坐标。即 - 因此 (0,0) 不会是整个屏幕,而是显示相机的 ImageView。

这可能吗?如果是 - 如何?

非常感谢您的帮助!谢谢

最佳答案

如果您想通过拖动来移动 View ,这里有很多信息,例如 Moving image with touch events .

关于获取 minorView 相对于 majorView 的顶部和左侧如何,通过一些简单的减法 minorViewRelativeTop = minorViewTop - majorViewTop 也很简单。使用 View.getLocationInWindow()为了获得这些绝对位置。

注意View.getLocationInWindow() 通常不会只在 Activity.onCreate() 中工作,因此最好在延迟一段时间后调用它。为了测试它可能是这样的:

majorView.postDelayed(new Runnable() {
            @Override
            public void run() {
                int[] location = new int[2];
                majorView.getLocationInWindow(location);
                int majorViewLeft = location[0];
                int majorViewTop = location[1];
            }
        }, 1000);

关于android - 如何在 Android 中获取相对于另一个 View 的 View 位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15949275/

相关文章:

java - 如何获取 Canvas 顶部和底部的引用以进行动态定位?

java - 如何更改 RecyclerView 中所有项目的布局?

android - 如何在自定义 View 中绘制文本?

android - 如何检查一个 View 是否有 child

android - 在外部存储API 23上创建新目录

android - 添加滑动以在 fragment 之间切换

Android 水平滚动菜单(如谷歌位置)

java - 是否可以将不同长度的 double 值转换为点前 2 位数字

使用内置属性的 Android 自定义 ImageView

android - 如何让ImageView在RelativeLayout中垂直填充