我正在为 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/