仅获取纵向模式的尺寸参数

时间:2011-08-08 15:07:15

标签: android landscape dimensions

我正在以纵向模式运行应用程序。现在我想在全屏,风景模式中打开一个意图,并且需要获得风景模式的高度和宽度。

以下是代码。

requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,   WindowManager.LayoutParams.FLAG_FULLSCREEN);    
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Display disp = getWindowManager().getDefaultDisplay();
Log.i("Width: " + disp.getWidth() + ", Height: " + disp.getHeight());

一切正常,就像屏幕在全屏模式下打开一样,横向模式也正常。但我只获得了纵向模式的高度和宽度参数。

如果我在横向模式下运行应用程序,那么我的高度和宽度都是正确的 对于相同的代码。

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

这是因为setRequestedOrientation需要一些时间才能生效。您可以使用代码在onRestart()/ onResume中显示。

  

更改此活动的所需方向。如果活动当前处于前台或以其他方式影响屏幕方向,则将立即更改屏幕(可能导致重新启动活动)。否则,这将在下次活动可见时使用。

答案 1 :(得分:0)

使用以下方法获取屏幕的宽度和高度

WindowManager windowManager = (WindowManager) activity.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
int height = windowManager.getDefaultDisplay().getHeight();
int width = windowManager.getDefaultDisplay().getWidth();