Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 方向改变时,如何获得屏幕的尺寸?[安卓]_Java_Android_Android Layout_Orientation - Fatal编程技术网

Java 方向改变时,如何获得屏幕的尺寸?[安卓]

Java 方向改变时,如何获得屏幕的尺寸?[安卓],java,android,android-layout,orientation,Java,Android,Android Layout,Orientation,我知道如何在创建时获得屏幕的尺寸。我正在制作一个runnable,它可以让我得到其中的维度 问题是,当我旋转我的设备时,它似乎没有正确返回尺寸 我正在考虑在Configuration Changed()上执行此操作,因为当我旋转设备时,似乎会发生这种情况。我试图做到以下几点,但我不认为它提供了有效的数据 Rect r = new Rect(); Window win = getWindow(); win,getDecorView().getWindowVisibleDisplayFrame(r)

我知道如何在创建时获得屏幕的尺寸。我正在制作一个runnable,它可以让我得到其中的维度

问题是,当我旋转我的设备时,它似乎没有正确返回尺寸

我正在考虑在Configuration Changed()上执行此操作,因为当我旋转设备时,似乎会发生这种情况。我试图做到以下几点,但我不认为它提供了有效的数据

Rect r = new Rect();
Window win = getWindow();
win,getDecorView().getWindowVisibleDisplayFrame(r);
int height = r.height();
int width = r.width();
但他们似乎并不正确。我试图在屏幕上移动一个创建的项目,但它不会移动到屏幕的边缘。我认为这与我的拖动功能无关

我觉得尺寸不对


这是怎么做到的?我走对了吗?

我创建的解决方法是OnConfiguration Change()我创建了一个带有属性的包,然后调用onCreate()。基本上,这将在新的方向上重新创建

这就是我为解决手头的问题所做的,它使布局重新招标

Bundle b = new Bundle();
b.putString("test","data here");
onCreate(b);

你试过这个吗?[[1]:是的,它给了我一个全屏幕的尺寸。到目前为止,我所做的是重新启动活动以绕过手头的问题,它是有效的,但在我看来,这不是处理它的最佳方式…即使看起来可以工作的东西,是针对较新的API的…目前我正在使用API7或更早版本。