我想以编程方式获取视图的位置X或Y(即按钮)但是 在链接(https://blog.takescoop.com/android-view-measurement-d1f2f5c98f75)的解决方案中返回的值是错误的。
我需要这个来限制动画中的y用于钳位功能。
我也有问题以编程方式获得高度和宽度。我可以在这里查看视图(https://stackoverflow.com/a/24035591/9498656 by view.post(new Runnable()) 但就像之前的价值观错误一样。
problem: animated view with restrictions on other view Y
有人可以解释如何获得不同屏幕的X Y高度宽度吗?
答案 0 :(得分:0)
获取相对于您可以使用的设备屏幕的视图的posX和posX;
int location[] = new int[2];
view.getLocationOnScreen(location);
int posX = location[0];
int posY = location[1];
要获得视图的高度和宽度,您可以使用
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
view.getHeight(); //height is ready
view.getWidth(); //width is ready
}
});
不要忘记通过调用view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
答案 1 :(得分:0)
以下是我要做的事情:
//Get screen size.
WindowManager wm = getWindowManager();
Display disp = wm.getDefaultDisplay();
Point size = new Point();
disp.getSize(size);
int screenWidth = size.x;
int screenHeight = size.y;
另外,考虑到大多数时候,窗口的大小不等于屏幕的大小,因为你必须考虑屏幕按钮上按钮的像素大小(菜单,回来,打开应用程序)。
希望它有所帮助!