我正在制作Android应用程序,使用ImageView在屏幕上显示相机图像(经过一些操作后),我想允许在屏幕上移动其他ImageViews - 但仅限于父ImageView内部。 / p>
另外,我需要获取相对于父ImageView坐标的子视图的坐标。即 - 因此(0,0)不是整个屏幕,而是显示相机的ImageView。
这有可能吗?如果是这样 - 怎么样?
非常感谢帮助!感谢
答案 0 :(得分:0)
如果你想通过拖动来移动视图,那么很多信息,例如Moving image with touch events 。
如果将minorView
的顶部和左侧相对于majorView
,那么使用一些简单的减法minorViewRelativeTop = minorViewTop - majorViewTop
也很简单。使用View.getLocationInWindow()获取这些绝对位置。
N.B。 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);