2012-08-25 55 views
1

我目前正在爲Android開發一個OpenGL應用程序。到目前爲止,一切正常,但導航欄有點令人不安...Android中的導航欄:大小和位置

有沒有辦法找出導航欄是否在右側,就像在我的星系連線上時,如果是在橫向或如果它是像平板電腦一樣在底部。 另外我需要導航欄的高度和寬度。

有誰知道我怎麼能做到這一點?

由於

+1

通過你指的是一個與家庭,返回鍵導航欄? –

+1

對。對於我的glViewport,我想根據方向 – glethien

回答

1

我發現我的問題的解決方案:

Display display = getWindowManager().getDefaultDisplay(); 
    Point size = new Point(); 
    display.getSize(size); 
    width = size.x; 
    height = size.y; 

的代碼,寬度和被包含高度和沒有導航欄或通知欄的寬度高度這一部分之後。

1

我做了這樣:

boolean hasMenuKey = ViewConfiguration.get(getApplicationContext()) 
       .hasPermanentMenuKey(); 

//如果沒有菜單鍵再有就是導航欄

if (!hasMenuKey && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 
     DisplayMetrics dm = new DisplayMetrics(); 
      getWindowManager().getDefaultDisplay().getMetrics(dm); 

      if (dm.heightPixels%10!=0) { 
      //navigation bar is on bottom 
      } else { 
       //navigation bar is on right side 
      } 

     } 
+0

減去酒吧的寬度或高度,並且如果旋轉時高度將爲768px的設備?高度%10!= 0將返回「true」,但導航欄位於右側..您是否找到了更可靠的解決方案來檢查導航欄的位置? – Droidman

+0

那時它是我找到更多設備的唯一解決方案。但是我仍然找不到好的解決方案 –