【移动应用开发技术】Android怎么实现隐藏手机底部虚拟按键_第1页
【移动应用开发技术】Android怎么实现隐藏手机底部虚拟按键_第2页
【移动应用开发技术】Android怎么实现隐藏手机底部虚拟按键_第3页
【移动应用开发技术】Android怎么实现隐藏手机底部虚拟按键_第4页
免费预览已结束,剩余1页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】Android怎么实现隐藏手机底部虚拟按键

这篇文章主要介绍Android怎么实现隐藏手机底部虚拟按键,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!现在的手机比较流行底部带虚拟按键,比如华为、nexus,一般情况下对开发一个APP没啥影响,但是不一般情况下就会有影响的,比如全屏录像功能,用简单的方法直接获取camera支持的手机屏幕分辨率然后用SurfaceView全屏渲染出来,这时由于底部虚拟按键占用了一定的高度的屏幕空间,这时图像会被压缩,特别是拍头像时会很明显,如图:接下来加上几个方法就OK了,代码如下

/**

*

隐藏虚拟按键,并且全屏

*/

protected

void

hideBottomUIMenu(){

//隐藏虚拟按键,并且全屏

if

(Build.VERSION.SDK_INT

>

11

&&

Build.VERSION.SDK_INT

<

19)

{

//

lower

api

View

v

=

this.getWindow().getDecorView();

v.setSystemUiVisibility(View.GONE);

}

else

if

(Build.VERSION.SDK_INT

>=

19)

{

//for

new

api

versions.

View

decorView

=

getWindow().getDecorView();

int

uiOptions

=

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

|

View.SYSTEM_UI_FLAG_IMMERSIVE;

decorView.setSystemUiVisibility(uiOptions);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

}

}检查是否存在虚拟按键栏/**

*

检查是否存在虚拟按键栏

*

@param

context

*

@return

*/

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

sNavBarOver

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论