我想知道图像视图的位置,但它总是返回0
既不返回x
坐标,也不返回y
坐标。这是我的代码
ImageView credits = (ImageView) v.findViewById(R.id.credits);
int[] coor = {0,0};
credits.getLocationOnScreen(coor);
x = coor[0];
y = coor[1];
我已经使用了很多方法,例如 getTop()
等,但仍然返回 0。
有人知道为什么吗?我是安卓新手,所以我非常感谢任何答案。
您是否在onCreate方法中执行此操作?
如果是,现在在onCreate()中检查getLocationOnScreen()还为时过早
这里的解决方案:https://stackoverflow.com/a/13244091/5392383
您是否onCreate()
方法中使用此代码?
快速搜索后,我找到了这篇文章。
简而言之,它说onCreate()
使用getLocationOnScreen
还为时过早,您应该在方法onWindowFocusChanged()
当您的Activity
获得焦点时使用它。
credits.post(new Runnable() {
@Override
public void run() {
int[] coor = {0,0};
credits.getLocationOnScreen(coor);
x = coor[0];
y = coor[1];
}
})
像这样尝试
请尝试这个
@Override
protected void onResume() {
super.onResume();
ImageView credits = (ImageView) v.findViewById(R.id.credits);
int[] coor = {0,0};
credits.getLocationOnScreen(coor);
x = coor[0];
y = coor[1];
}