【Android 获取虚拟按键的高度】春衣少年当酒歌,起舞四顾以笑和。这篇文章主要讲述Android 获取虚拟按键的高度相关的知识,希望能为你提供帮助。
//获取虚拟按键的高度 public static int getNavigationBarHeight(Context context) { int result = 0; if (hasNavBar(context)) { Resources res = context.getResources(); int resourceId = res.getIdentifier("navigation_bar_height", "dimen", "android"); if (resourceId > 0) { result = res.getDimensionPixelSize(resourceId); } } return result; }/** * 检查是否存在虚拟按键栏 * * @param context * @return */ @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) public static boolean hasNavBar(Context context) { Resources res = context.getResources(); int resourceId = res.getIdentifier("config_showNavigationBar", "bool", "android"); if (resourceId != 0) { boolean hasNav = res.getBoolean(resourceId); // check override flag String sNavBarOverride = getNavBarOverride(); if ("1".equals(sNavBarOverride)) { hasNav = false; } else if ("0".equals(sNavBarOverride)) { hasNav = true; } return hasNav; } else { // fallback return !ViewConfiguration.get(context).hasPermanentMenuKey(); } }/** * 判断虚拟按键栏是否重写 * * @return */ private static String getNavBarOverride() { String sNavBarOverride = null; if (Build.VERSION.SDK_INT > = Build.VERSION_CODES.KITKAT) { try { Class c = Class.forName("android.os.SystemProperties"); Method m = c.getDeclaredMethod("get", String.class); m.setAccessible(true); sNavBarOverride = (String) m.invoke(null, "qemu.hw.mainkeys"); } catch (Throwable e) { } } return sNavBarOverride; }
}
推荐阅读
- Android requestLayout 和 invalidata , postInvalidate 比较
- Android studio 报错 gradel project sync failed Error:Cause: peer not authenticated
- Android 获取Activity当前view
- Android面试过程描写叙述
- 设计模式 - 模板方法模式(template method pattern) Applet 具体解释
- Android 关于软键盘
- Memo1.Lines.Add(s) 与 Memo1.Lines.Append(s) 的区别是什么?
- 如何正确的对安卓手机进行数据恢复()
- Android应用源代码ListView实现的文件夹树结构