博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 获取虚拟按键的高度
阅读量:4975 次
发布时间:2019-06-12

本文共 1441 字,大约阅读时间需要 4 分钟。

//获取虚拟按键的高度    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; }
}

转载于:https://www.cnblogs.com/ldq2016/p/6905429.html

你可能感兴趣的文章
matlab 卷积公式与矩阵实现
查看>>
检测java string变量是否含有中文
查看>>
JS事件委托
查看>>
Centos7 配置
查看>>
javascript实现减速运动
查看>>
【2019.7.15 NOIP模拟赛 T2】与非树(nand)(树形DP)
查看>>
javascript 提取表单元素生成用于提交的对象(序列化 html 表单)
查看>>
学习Javascript闭包
查看>>
jmeter接口测试----5学生金币充值
查看>>
15-基础-路由-vue-router-to 属性赋值
查看>>
红黑树
查看>>
bzoj4031: [HEOI2015]小Z的房间
查看>>
android开机引导界面的几种实现
查看>>
vue组件-使用插槽分发内容(slot)
查看>>
[转]不使用中间变量,交换两个数值变量的值
查看>>
javascript 正则表达式之分组与前瞻匹配详解
查看>>
移动端问题总纲
查看>>
mysql数据库乱码解决方法之一
查看>>
kali-简单渗透笔记
查看>>
NPOI导出为Excel文件
查看>>