2013-04-09 80 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 
}