欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android開發(fā)之判斷有無虛擬按鍵(導航欄)的實例

 更新時間:2018年01月16日 13:57:09   作者:尒洏強汏  
下面小編就為大家分享一篇Android開發(fā)之判斷有無虛擬按鍵(導航欄)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

判斷有無虛擬按鍵(導航欄)

現在很大一部分手機沒有虛擬按鍵,一部分有。我們在做適配的時候可能會用到這方面的知識。

例如:屏幕填充整個屏幕的時候,沒辦法只能連導航欄一起填充了,但是這個不是我們想要的,我們要給布局試著paddingbottom,這個時候我們就要判斷有么有導航欄,導航欄高度是多少了。

/**
  * 獲取是否存在NavigationBar
  * @param context
  * @return
  */
 public boolean checkDeviceHasNavigationBar(Context context) {
  boolean hasNavigationBar = false;
  Resources rs = context.getResources();
  int id = rs.getIdentifier("config_showNavigationBar", "bool", "android");
  if (id > 0) {
   hasNavigationBar = rs.getBoolean(id);
  }
  try {
   Class systemPropertiesClass = Class.forName("android.os.SystemProperties");
   Method m = systemPropertiesClass.getMethod("get", String.class);
   String navBarOverride = (String) m.invoke(systemPropertiesClass, "qemu.hw.mainkeys");
   if ("1".equals(navBarOverride)) {
    hasNavigationBar = false;
   } else if ("0".equals(navBarOverride)) {
    hasNavigationBar = true;
   }
  } catch (Exception e) {
  }
  return hasNavigationBar;
 }
 /**
  * 獲取虛擬功能鍵高度
  * @param context
  * @return
  */
 public int getVirtualBarHeigh(Context context) {
  int vh = 0;
  WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
  Display display = windowManager.getDefaultDisplay();
  DisplayMetrics dm = new DisplayMetrics();
  try {
   @SuppressWarnings("rawtypes")
   Class c = Class.forName("android.view.Display");
   @SuppressWarnings("unchecked")
   Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);
   method.invoke(display, dm);
   vh = dm.heightPixels - windowManager.getDefaultDisplay().getHeight();
  } catch (Exception e) {
   e.printStackTrace();
  }
  return vh;
 }

以上這篇Android開發(fā)之判斷有無虛擬按鍵(導航欄)的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Android不顯示開機向導和開機氣泡問題

    Android不顯示開機向導和開機氣泡問題

    這篇文章主要介紹了Android不顯示開機向導和開機氣泡問題,需要的朋友可以參考下
    2019-05-05
  • android電源信息查看(電量、溫度、電壓)實例代碼

    android電源信息查看(電量、溫度、電壓)實例代碼

    這篇文章主要介紹了android電源信息查看方法,以實例形式較為詳細的分析了Android實現電源電量、電壓、溫度等信息查看的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Android SQLite數據庫的增 刪 查找操作

    Android SQLite數據庫的增 刪 查找操作

    這篇文章主要介紹了Android SQLite數據庫的增 刪 查找操作,需要的朋友可以參考下
    2017-02-02
  • Android開發(fā)自定義控件之折線圖實現方法詳解

    Android開發(fā)自定義控件之折線圖實現方法詳解

    這篇文章主要介紹了Android開發(fā)自定義控件之折線圖實現方法,結合實例形式詳細分析了Android自定義控件中折線圖原理、實現方法與操作注意事項,需要的朋友可以參考下
    2020-05-05
  • MVVMLight項目的綁定及各種使用場景示例分析

    MVVMLight項目的綁定及各種使用場景示例分析

    這篇文章主要為大家介紹了MVVMLight項目中的綁定及綁定的各種使用場景示例源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步除夕快樂
    2022-01-01
  • Matrix的set,pre,post調用順序詳解

    Matrix的set,pre,post調用順序詳解

    下面小編就為大家?guī)硪黄狹atrix的set,pre,post調用順序詳解。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 獲取Android應用專屬緩存存儲目錄的實例

    獲取Android應用專屬緩存存儲目錄的實例

    今天小編就為大家分享一篇獲取Android應用專屬緩存存儲目錄的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Activity/Fragment結束時處理異步回調的解決方案

    Activity/Fragment結束時處理異步回調的解決方案

    這篇文章主要介紹了關于在Activity/Fragment結束時處理異步回調的解決方案,文中介紹的非常詳細,對大家的學習或者工作具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • Android中View.post和Handler.post的關系

    Android中View.post和Handler.post的關系

    這篇文章主要介紹了Android中View.post和Handler.post的關系,View.post和Handler.post是Android開發(fā)中經常使用到的兩個”post“方法,關于兩者存在的區(qū)別與聯系,文章詳細分析需要的小伙伴可以參考一下
    2022-06-06
  • 解析Android AIDL的實例與原理

    解析Android AIDL的實例與原理

    為使應用程序之間能夠彼此通信,Android提供了IPC(Inter Process Communication,進程間通信)的一種獨特實現:AIDL(Android Interface Definition Language,Android接口定義語言)
    2021-06-06

最新評論