为什么屏幕上的位置总是 return 0?
Why does location on screen always return 0?
我想知道图像视图的位置,但它总是 return 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()
,但仍然是return 0.
有人知道为什么吗?我是 android 的新手,所以非常感谢任何答案。
您是否在 onCreate()
方法中使用此代码?
经过快速搜索,我找到了 THIS POST。
简而言之,它说 onCreate()
使用 getLocationOnScreen
还为时过早,您应该在 Activity
获得焦点时在方法 onWindowFocusChanged()
旁边使用它。
您是在 onCreate 方法中这样做吗?
如果是,现在检查 onCreate() 中的 getLocationOnScreen() 还为时过早
这里的解决方案:
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];
}
我想知道图像视图的位置,但它总是 return 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()
,但仍然是return 0.
有人知道为什么吗?我是 android 的新手,所以非常感谢任何答案。
您是否在 onCreate()
方法中使用此代码?
经过快速搜索,我找到了 THIS POST。
简而言之,它说 onCreate()
使用 getLocationOnScreen
还为时过早,您应该在 Activity
获得焦点时在方法 onWindowFocusChanged()
旁边使用它。
您是在 onCreate 方法中这样做吗?
如果是,现在检查 onCreate() 中的 getLocationOnScreen() 还为时过早
这里的解决方案:
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];
}