我正在为 Android 制作一个应用程序,它使用 ImageView 在屏幕上显示相机图像(经过一些操作后),我想允许在屏幕上移动其他 ImageViews - 但只能在父 ImageView 内移动。
另外,我需要获取子视图相对于父 ImageView 坐标的坐标。ie - 这样 (0,0) 将不是整个屏幕,而是显示相机的 ImageView。
这有可能吗?如果是这样 - 如何?
非常感谢您的帮助!谢谢
我正在为 Android 制作一个应用程序,它使用 ImageView 在屏幕上显示相机图像(经过一些操作后),我想允许在屏幕上移动其他 ImageViews - 但只能在父 ImageView 内移动。
另外,我需要获取子视图相对于父 ImageView 坐标的坐标。ie - 这样 (0,0) 将不是整个屏幕,而是显示相机的 ImageView。
这有可能吗?如果是这样 - 如何?
非常感谢您的帮助!谢谢
如果你想通过拖动来移动视图,这里有很多信息,例如,带有触摸事件的移动图像。
通过一些简单的减法来获得minorView
相对于它的顶部和左侧怎么样也很简单。使用View.getLocationInWindow()获取这些绝对位置。majorView
minorViewRelativeTop = 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);