2013-04-09 48 views
0

我在安卓4.2上有问题。我试图弄清楚,如果屏幕横向或纵向。我知道这样做的以下几种方式:Android 4.2设备定位

  1. 这完美的作品,除了它,这是API级别后贬值8

    Display display = ((WindowManager) 
           getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); 
    int orientation = display.getOrientation(); 
    
  2. 这是在Android搞清楚方向的首选方法4.2。但是这种方法只不管返回默认方向的旋转程度,以及不正确的找出当前的设备配置(横向或方向)

    WindowManager wManager = (WindowManager) getSystemService(WINDOW_SERVICE); 
    int rotation = wManager.getDefaultDisplay().getRotation(); 
    

我需要知道当前旋转是什么(横向或纵向)的设备。我希望在这个问题上有任何帮助。

谢谢。

+0

我想我可以重写onWindowFocusChanged方法和计算出屏幕的宽度和高度,如果宽度大于高度的屏幕处于横向,否则肖像。让我知道你们认为这是否是一种有效识别方向的方法。 – aali83 2013-04-09 18:51:23

回答

1

这应该工作...

Activity.getResources().getConfiguration().orientation 

它会告诉你是否它的横向或纵向,但不会区分的反转(即横向反转) 。

您也可以覆盖onConfigurationChanged方法

public void onConfigurationChanged(Configuration _newConfig) 
+0

谢谢你,非常棒! – aali83 2013-04-09 20:39:58

1

你可以试试:

int orientation = getResources().getConfiguration().orientation; 

if (orientation == Configuration.ORIENTATION_LANDSCAPE) 
{ 
// code 
} else if (orientation == Configuration.ORIENTATION_PORTRAIT) 
{ 
// code 
}