判断有无虚拟按键(导航栏)

现在很大一部分手机没有虚拟按键,一部分有。我们在做适配的时候可能会用到这方面的知识。

例如:屏幕填充整个屏幕的时候,没办法只能连导航栏一起填充了,但是这个不是我们想要的,我们要给布局试着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开发之判断有无虚拟按键(导航栏)的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

android判断多个按钮,Android开发之判断有无虚拟按键(导航栏)的实例相关推荐

  1. Android 4.2虚拟按键背景透明,Android 4.0 隐藏虚拟按键(导航栏)的方法

    在Android4.0里,多了一些API,其中包括怎样隐藏虚拟按键(导航栏),这样编写游戏或一个视频播放器时,可以设置隐藏虚拟按键的参数,达到最佳效果,当然前提是使用的手机是有虚拟按键的,例如gala ...

  2. android4.0 去掉虚拟按键 教程,Android 4.0 隐藏虚拟按键(导航栏)的方法

    在Android4.0里,多了一些API,其中包括怎样隐藏虚拟按键(导航栏),这样编写游戏或一个视频播放器时,可以设置隐藏虚拟按键的参数,达到最佳效果,当然前提是使用的手机是有虚拟按键的,如下图所示下 ...

  3. 一加android8稳定版,一加5T获Android 8.1稳定版升级 全屏手势代替虚拟按键

    原标题:一加5T获Android 8.1稳定版升级 全屏手势代替虚拟按键 虽然一加手机的新旗舰一加6即将发布,但是官方也没有忘记老用户.5月9日夜间,一加5T迎来了稳定版固件更新,除了核心升级为And ...

  4. 微信小程序从零开始开发步骤(三)底部导航栏

    上一章节,我们分享了如何创建一个新的页面和设置页面的标题,这一章我们来聊聊底部导航栏是如何实现的.即点击底部的导航,会实现不同对应页面之间的切换. 我们先来看个我们要实现的底部导航栏的效果图:(三个导 ...

  5. uni-app开发:tabar组件与顶部导航栏(功能开发篇)

    uni-app开发:tabar组件与顶部导航栏(含右侧icon点击功能)[结合:案例Demo截图] 一.效果图 · 截图: 二. tabar组件 + 顶部导航栏(含右侧icon点击功能) 组件的代码调 ...

  6. android studio怎么添加按钮,Android Studio 工具栏添加常用按钮

    本文中 Android Studio 的版本为 android Studio 2.2 ,操作系统为 Windows,如有操作不同,可能是版本差异. 在工具栏中添加一些常用的按钮,如设置.DDMS,有利 ...

  7. android 软键盘遮住按钮,Android应用中出现软键盘遮挡住按钮如何解决

    Android应用中出现软键盘遮挡住按钮如何解决 发布时间:2020-11-20 16:25:47 来源:亿速云 阅读:110 作者:Leah Android应用中出现软键盘遮挡住按钮如何解决?相信很 ...

  8. android 中的悬浮按钮,Android 中FloatingActionButton(悬浮按钮)实例详解

    android 中floatingactionbutton(悬浮按钮)实例详解 一.介绍 这个类是继承自imageview的,所以对于这个控件我们可以使用imageview的所有属性 二.使用准备, ...

  9. android用户界面设计:基本按钮,Android用戶界面設計:基本按鈕

    本文向你展示了在你的android應用程序中創建一個簡單的Button或ImageButton控件的步驟.首先,你會學到如何向你的布局文件中添加按鈕控件.然後你會學習如何用兩種方法處理用戶對按鈕的點擊 ...

最新文章

  1. 微软压力测试工具 web application stress
  2. 抽象类可以有构造函数吗
  3. mysql从一张表更新另外一张表_MySQL 从一张表update字段到另外一张表中
  4. sql server:删除表数据,标识列Id从1开始
  5. MySql默认编码所造成的乱码麻烦1.222
  6. 第三十五期:AI核心难点之一:情感分析的常见类型与挑战
  7. PL/SQL-FOR UPDATE 与 FOR UPDATE OF的区别
  8. oracle 统计文本字符串,oracle人员权限,字符串转列,统计管理详解-Oracle
  9. java封装与调用方法_java方法和封装
  10. 支付宝生活号已激活但自动登录提示没权限,什么原因
  11. ip地址自动获取背后的机制(udhcpc)
  12. ios android 录音格式,Audio模块录音格式汇总(aac、mp3)
  13. 用于AB测试的减少方差方法总结和对比
  14. 007数据分析能力:业务题
  15. C++语言程序设计(第4版)郑莉练习
  16. 自动驾驶分级 - 练习测验
  17. 用74ls90组成二十四进制计数器_减法计数器的组成以及原理
  18. 清除flashback日志
  19. Android自定义控件(一) 可滑动的进度条
  20. 图片 bmp 格式详解

热门文章

  1. hystrix thread pool Metrics
  2. jQuery源码分析系列 : 整体架构
  3. 基于IP访问控制的局限性
  4. Vim配置文件(全平台可用)2012-05-01版
  5. 卷积神经网络迁移学习
  6. C# 如何获取屏幕分辨率缩放比例
  7. .NET定时任务执行管理器开源组件–FluentScheduler
  8. [原]iBatis.Net(C#)系列一:简介及运行环境
  9. 利用System.Net.Mail 的SmtpClient发送邮件
  10. ref out param 区别