1

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

另外,我需要获取子视图相对于父 ImageView 坐标的坐标。ie - 这样 (0,0) 将不是整个屏幕,而是显示相机的 ImageView。

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

非常感谢您的帮助!谢谢

4

1 回答 1

1

如果你想通过拖动来移动视图,这里有很多信息,例如,带有触摸事件的移动图像

通过一些简单的减法来获得minorView相对于它的顶部和左侧怎么样也很简单。使用View.getLocationInWindow()获取这些绝对位置。majorViewminorViewRelativeTop = minorViewTop - majorViewTop

注意 这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);
于 2013-04-12T13:36:07.920 回答