安卓 关于隐藏虚拟按键
最近公司做了个游戏,是用cocos做的,用了安卓的壳子,没啥关于安卓的东西。
有个需求,就是隐藏虚拟按键
隐藏按键很简单
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE;
window.getDecorView().setSystemUiVisibility(uiOptions); // 使用activity的window是隐藏虚拟按键。
getWindow().setNavigationBarColor(Color.parseColor("#1bb5d7")); //设置虚拟按键的背景颜色
但是这只满足个别需求
比如小米8 全面屏 判断条件不一样
下面展示一些 内联代码片
。
protected void hideVirtualButton() {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {if (checkDeviceHasNavigationBar(this)) {getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE//256| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION//512| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN//1024| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar2
// | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar4| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY//4096);} else {getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);}}}public static 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 {if (isMIUI()) {//小米手机在全面屏的情况下,虚拟按键栏不展示,但是判断出来是true ,而且还有高度,就专门换一种方式来判断。if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {hasNavigationBar = Settings.Global.getInt(context.getContentResolver(), "force_fsg_nav_bar", 0) == 0;}} else {Class systemPropertiesClass = Class.forName("android.os.SystemProperties");Method m = systemPropertiesClass.getMethod("get", String.class);String navBarOverride = (String) m.invoke(systemPropertiesClass, "qemu.hw.mainkeys");//判断是否隐藏了底部虚拟导航int navigationBarIsMin = 0;if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {navigationBarIsMin = Settings.System.getInt(context.getContentResolver(),"navigationbar_is_min", 0);} else {navigationBarIsMin = Settings.Global.getInt(context.getContentResolver(),"navigationbar_is_min", 0);}if ("1".equals(navBarOverride) || 1 == navigationBarIsMin) {hasNavigationBar = false;} else if ("0".equals(navBarOverride)) {hasNavigationBar = true;}}} catch (Exception e) {}return hasNavigationBar;}/*** 判断是不是小米手机** @return*/public static boolean isMIUI() {String manufacturer = Build.MANUFACTURER;// 这个字符串可以自己定义,例如判断华为就填写huawei,魅族就填写meizuif ("xiaomi".equalsIgnoreCase(manufacturer)) {return true;}return false;}
安卓 关于隐藏虚拟按键相关推荐
- 安卓平板隐藏虚拟按键_实现安卓设备虚拟按键隐藏和显示的方法和系统的制作方法...
实现安卓设备虚拟按键隐藏和显示的方法和系统的制作方法 [技术领域] [0001]本发明涉及移动终端显示技术领域,尤其涉及一种方便实现安卓设备虚拟按键隐藏和显示的方法和系统. [背景技术] [0002] ...
- 安卓平板隐藏虚拟按键_如何隐藏 Android 下方的三个虚拟按键
满意答案 RaulEP 2016.05.21 采纳率:54% 等级:5 已帮助:205人 Android 隐藏虚拟按键,可以使用谷歌官方提供的api里的SYSTEM_UI_FLAG_HIDE_N ...
- 安卓平板隐藏虚拟按键_Android实现隐藏手机底部虚拟按键
现在的手机比较流行底部带虚拟按键,比如华为.nexus,一般情况下对开发一个APP没啥影响,但是不一般情况下就会有影响的,比如全屏录像功能, 用简单的方法直接获取camera支持的手机屏幕分辨率然后用 ...
- 安卓平板隐藏虚拟按键_Android 4.0 虚拟按键、手机模式、平板模式
关键词:android 4.0 手机模式(phone) 平板模式(table) 虚拟按键 lcd_density 平台信息: 内核:linux2.6/linux3.0 系统:android/andro ...
- 安卓 P 动态显示和隐藏虚拟按键
需求: 系统预制两个launcher,客户launcher要隐藏虚拟按键并全屏,切换原生launcher后,虚拟按键要正常显示. 在安卓 7.1 上主要是实现PHONE_STATUS_BAR_ENAB ...
- 安卓9去掉搜索栏_android9.0隐藏虚拟按键跟状态栏,除去google搜索栏.
1.隐藏虚拟按键跟状态栏 1.修改文件: frameworks/base/packages/SettingsProvider/res/values/defaults.xml cell,bluetoot ...
- Android 4.2虚拟按键背景透明,Android 4.0 隐藏虚拟按键(导航栏)的方法
在Android4.0里,多了一些API,其中包括怎样隐藏虚拟按键(导航栏),这样编写游戏或一个视频播放器时,可以设置隐藏虚拟按键的参数,达到最佳效果,当然前提是使用的手机是有虚拟按键的,例如gala ...
- Android 隐藏虚拟按键
Android 隐藏虚拟按键 领导要求: 横屏播放视频时,不展示虚拟按键: 恢复到竖屏时,展示虚拟按键: /*** NavigationBar 显示与隐藏*/ public class Navigat ...
- java游戏管理器虚拟按键_Android实现手机游戏隐藏虚拟按键
手机游戏实现Android隐藏虚拟按键,供大家参考,具体内容如下 在华为等型号的手机会有虚拟按键,在进入游戏的时候,需要全屏隐藏这个按键,并在下拉状态栏的时候,会重新呼出虚拟按键. 游戏的加载过程中, ...
最新文章
- “好像在哪见过你”现在有了科学解释,一群脑细胞帮你回忆那张脸 | Science
- Centos下安装apahce的configure: error: APR not found. Please read the documentation解决办法
- metadata in OData and png
- 部署在SAP ABAP服务器上的SAP UI5应用的JavaScript文件,是如何被SAP UI5 repository handler处理的
- STM32F4 串口DMA
- Eureka自我保护机制
- zplane函数怎么用m文件调用_elastique.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...
- 把变量赋值给寄存器_阻塞赋值和非阻塞赋值的区别与记忆
- 使用 PHP Curl 做数据中转
- 巴西矿坝决堤事故已致58人死亡 多达300人失踪
- C语言必背18个经典程序,2022年C语言必背100代码大全
- 小米手机测试代码电池测试代码
- 6.1 统计学基本原理
- 基于推特数据挖掘交通事件的城市交通流深度学习预测模型
- 嵇少峰:互联网金融草根时代终结
- redis——jedis的使用以及springboot整合redis
- 敏感字符的识别+处理
- CentOS 6.8 Local time zone must be set--see zic manual page
- NVIDIA显卡驱动的安装失败
- 周志华 《机器学习初步》 绪论