java游戏管理器虚拟按键_Android实现手机游戏隐藏虚拟按键
手机游戏实现Android隐藏虚拟按键,供大家参考,具体内容如下
在华为等型号的手机会有虚拟按键,在进入游戏的时候,需要全屏隐藏这个按键,并在下拉状态栏的时候,会重新呼出虚拟按键。
游戏的加载过程中,初始化检查更新,然后进入到游戏画面,实际上是android的2个view的切换。
其中MainActivity中,在onCreate()方法中添加如下函数并且复写一个方法就可以了。
@Override
protected void onCreate(Bundle icicle) {
hideNavigationBar();
}
// 隐藏虚拟按键
public void hideNavigationBar()
{
int uiFlags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN; // hide status bar
if( android.os.Build.VERSION.SDK_INT >= 19 ){
uiFlags |= 0x00001000; //SYSTEM_UI_FLAG_IMMERSIVE_STICKY: hide navigation bars - compatibility: building API level is lower thatn 19, use magic number directly for higher API target level
} else {
uiFlags |= View.SYSTEM_UI_FLAG_LOW_PROFILE;
}
getWindow().getDecorView().setSystemUiVisibility(uiFlags);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if( hasFocus ) {
hideNavigationBar();
}
}
另外,在切换到GameView之后,发现隐藏是隐藏了,但是虚拟按键那一条是灰色的,游戏的渲染区域并不包含哪块区域,所以觉得是渲染区域大小在隐藏了虚拟按键之后,这个大小并没有正确,应该取得的时候屏幕真正的分辨率。
下面的方法是获取屏幕真正的分辨率,然后渲染区域是全屏,这样就可以全屏显示了。
private Point getDisplay(MainActivity context)
{
DisplayMetrics metrics = new DisplayMetrics();
Display display = context.getWindowManager().getDefaultDisplay();
display.getMetrics(metrics);
DisplayMetrics dm = new DisplayMetrics();
@SuppressWarnings("rawtypes")
Class c;
try {
c = Class.forName("android.view.Display");
@SuppressWarnings("unchecked")
Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);
method.invoke(display, dm);
return new Point(dm.widthPixels, dm.heightPixels);
} catch (Exception e) {
return new Point(dm.widthPixels, dm.heightPixels);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
java游戏管理器虚拟按键_Android实现手机游戏隐藏虚拟按键相关推荐
- Delta3D———通过游戏管理器组件和消息的扩展创建自定义行为 《转》
游戏管理器组件给我们提供了在不修改游戏管理器的情况下灵活扩展我们的自定义行为的能力.游戏管理器组件是基于消息来工作的,定义自定义行为的基本 流程就是创建自定义类型的消息,在合适的时候发送消息,创建自定 ...
- java 布局管理器_有时在Java中,一个布局管理器是不够的
java 布局管理器 在开发Java Swing应用程序时,最经常的是,我们需要在多个嵌套面板中使用多个布局管理器. 这通常不是问题,被认为是几乎所有人类已知语言的所有UI开发的常规做法. 但是,大多 ...
- Java布局管理器实现关掉,Java布局管理器使用方法探讨
下载本文示例代码 很多初学者在用Java布局器自动布局画界面时,经常遇见不知道如何定义区域大小或按钮之间的距离等问题.我写过一篇<实现JAVA手动布局中各个组件能随窗口变化的方法>的文章, ...
- 添加游戏对象到 Windows 7 游戏管理器中。
在 Windows 7 中点击开始,再点击游戏,就可打开系统游戏管理器了:在里面添加其他游戏也很方便,只需要把游戏快捷方式或游戏执行程序拖进去就可了. 出于对拖游戏执行程序后,显示名称的修改就在系统中 ...
- Java布局管理器setLayout()
Java布局管理器setLayout() 1.FlowLayout public FlowLayout(int align,int hgap,int vgap) 创建一个新的流布局管理器,具有指定的对 ...
- Java布局管理器详解
很多初学[Java教程]的小伙伴对Java布局管理器不是很了解,下面小编就来给大家进行详细介绍. 边框布局管理器 BorderLayout(边框布局管理器)是 Window.JFrame 和 JDia ...
- java布局管理器的应用总结,GridBagLayout布局管理器的应用
GridBagLayout布局管理器比较复杂,参数也比较多,参数的名字是 newGridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx, ...
- java 布局管理器_java布局管理器-borderlayout
在构造方法中添加代码: 窗口大小 this.setSize(500, 600); 窗口设置borderlayout布局管理器 this.getContentPane().setLayout(new B ...
- java缓存管理器_使用@EnableCaching的Spring Boot默认缓存管理器
我在SpringBootApplication中实现了缓存,如下所示 @SpringBootApplication @EnableCaching public class SampleApplicat ...
最新文章
- 关于startActivityForResult
- MySQl数据库必会sql语句(提升版)
- python把列表样式的字符串重新转换为列表
- Altium designer常用封装库(原理图+PCB+3D)超级全
- linux-shell命令之date【显示/设置系统日期/时间】
- DMA及cache一致性的学习心得
- idea中二级包为什么创建不了_IDEA通过Maven打包JavaFX工程(OpenJFX11)
- Python、C++ lambda 表达式
- java bitset_Java BitSet or()方法与示例
- shell 基础知识
- 计算机磁盘读取信息,VBA如何获取电脑磁盘信息,这个方法一定要知道
- Spring-core-Environment/profiles
- Sublime Text 2.0.2 注册码
- 浏览器控制台Network面板简述
- linux下chm制作工具,在Linux上安装CHM查看工具
- 小米手机TCP连接一些奇怪现象
- java定时器每天执行一次_定时器-每天23:00执行一次
- 电脑插入头戴式耳机后声音依然外放
- 复选框判断是否选中及获取值
- 不知不觉自己的C盘越来越大了?你可能需要看一看这个
热门文章
- Word样式的导入与导出
- OCR识别通过某瓣人机验证
- 大一护理专业计算机挂科,大一就迎来这些难度大的学科,往年“挂科率”高,大一学生需重视...
- 《Python编程:从入门到实践》第12章:武装飞船
- java 面试 自我介绍
- 从贝叶斯定理到概率分布:详解概率论基本定义
- 影响利率风险结构的因素_利率风险结构是什么意思 影响利率的因素
- js中~~和 | 的使用
- 前端下载pdf文档(支持doc/excel/ppt/pdf/jpg、png等)
- 数据安全态势感知解决方案汇总