如何解决Android虚拟按键_类似华为的虚拟键
来源:互联网 发布:公司屏蔽了淘宝怎么办 编辑:程序博客网 时间:2024/06/05 05:58
我们在开发Android 的时候,尤其是适配,是真心觉得Android 头大,①各种状态栏,②小米的悬浮框权限会导致系统级别的WindowManager加载的view 不显示,尤其是Mi 5,Mi 6,③华为的虚拟按键,④魅族手机使用Videovie控件,会在魅族手机底部产黑条 ⑤ 华为手机插入USB 数据线通讯的时候,点击弹窗 是,则导致 不能正常通讯,必须点击否 采用Google 的AOA 协议 才可以避免弹窗提示!
看看,每个学Android 的人 都是天使,和IOS 那适配比起来,IOS 省了好多 机型适配的问题。
进入正题!
1.状态栏的问题就很好解决,如果为了到达全屏!
首先去掉状态栏
<activity android:name="com.gdu.mvp_view.ZorroRealControlActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
<style name="Theme.NoTitleBar.Fullscreen"> <item name="windowFullscreen">true</item> <item name="windowContentOverlay">@null</item> </style>
就可以去掉了!
2.解决下方的虚拟按键NavigationBar
①首先判断是否有虚拟按钮
/** * <P>shang</P> * <P>判断是否有虚拟按键</P> * @param context * @return */ 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 { 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; }
②就是开始去掉虚拟按键
@Override protected void onResume() { //解决 虚拟按键问题 solveNavigationBar(getWindow());}
/** * <P>shang</P> * <P>解决虚拟按键问题</P> * @param window */ public void solveNavigationBar(Window window){ //保持布局状态 int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE| //布局位于状态栏下方 View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION| //全屏 View.SYSTEM_UI_FLAG_FULLSCREEN| //隐藏导航栏 View.SYSTEM_UI_FLAG_HIDE_NAVIGATION| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN; if (Build.VERSION.SDK_INT>=19){ uiOptions |= 0x00001000; }else{ uiOptions |= View.SYSTEM_UI_FLAG_LOW_PROFILE; } window.getDecorView().setSystemUiVisibility(uiOptions); }
实测有效!如上图Gif,达到王者荣耀 游戏界面效果!
阅读全文
0 0
- 如何解决Android虚拟按键_类似华为的虚拟键
- 在开发中沉侵式效果遇到类似华为手机虚拟按键一系列问题的解决
- Android 解决沉浸式状态栏和华为虚拟按键冲突
- 解决华为手机隐藏虚拟按键Activity被重启的问题
- android 华为虚拟按键适配
- 安卓类似华为手机适配底部虚拟按键的解决方案
- 安卓类似华为手机适配底部虚拟按键的解决方案
- android虚拟按键的实现
- 解决输入法遮挡布局和华为手机底部虚拟按键遮挡底部界面的方法
- Android如何隐藏底部虚拟按键
- 安卓如何设置沉浸式状态栏,注意处理华为等有虚拟按键的问题
- 隐藏与显示华为等有虚拟按键手机的虚拟按键
- Android适配华为手机虚拟按键显示或隐藏
- android虚拟按键
- Android: 发送虚拟按键
- android TP虚拟按键
- android虚拟按键
- android虚拟按键
- python处理csv文件
- 条件化的Bean——@Conditional注解
- springboot访问jsp页面
- 树链剖分+线段树 POJ3237 权值在边 模板
- oracle rac增加节点报错三例
- 如何解决Android虚拟按键_类似华为的虚拟键
- 如何发布自己的 jar 包到 maven 中央仓库
- 靶形数独(dfs+剪枝)
- JSP交互---JSTL标签
- ST17H26程序移植关键部分记录
- 百度地图JavaScript开发入门教程
- HDOJ2048_神、上帝以及老天爷
- 普通自定义view
- jquery post时content-type的几种取值