[0041] 下面结合附图与具体实施例来对本发明作进一步描述。
[0042] 本发明主要是优化View类的组合方式,封装成虚拟按键的完全隐藏、半隐藏和完全显示三种样式的函数接口。在界面窗口加载时,回调onCreate()方法,在该方法中灵活调用封装的函数接口,即可实现该界面窗口对虚拟按键的灵活控制,实现自己的窗口对虚拟按键的灵活处理,具体实施过程详见实施例1和实施例2。
[0043] 实施例一
[0044] 请参照图1,本发明公开的一种方便实现安卓设备虚拟按键隐藏和显示的方法,其包括以下步骤:
[0045] 步骤S1、将View类的通用(或常用)属性进行优化组合,封装成虚拟按键的完全隐藏、半隐藏以及完全显示三种样式的函数接口,每种样式的函数接口带有一个相应的函数参数;
[0046] 步骤S2、创建一个提供三种样式的函数接口的虚拟按键显示服务,运行于系统的进程中;
[0047] 步骤S3、根据所述函数接口重写窗口界面类的requestFeature(int flag)方法;
[0048] 步骤S4、在窗口界面刷新时,调用所述重写的requestFeature(int flag)方法,并传递不同的函数参数。
[0049] 其中,步骤S1中,所谓的通用属性是指View类实现的功能进行分类,然后将相同属性的View类组合在一起组装成一个函数接口,在窗口界面通过requestFeature(int flag)方法调用该函数接口即可实现虚拟按键的相应功能操作,通用属性包括完全隐藏属性、半隐藏属性以及完全显示属性三种属性,依此优化组合组装的接口为hide()、partyHide()和fullDisplay(),分别代表虚拟按键的完全隐藏函数接口,半隐藏函数接口和完全显示函数接口,并且每种函数接口的组装属性均为共有(public)属性。
[0050] 例如:完全隐藏虚拟按键的组合如下,其是将具有完全隐藏属性的View进行组合:
[0051] View.SYSTEM_UI_FLAG_LAYOUT_STABLE
[0052] View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
[0053] View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
[0054] View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
[0055] View.SYSTEM_UI_FLAG_FULLSCREEN
[0056] View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
[0057] 封装的接口为hide(),在窗口界面通过requestFeature(int flag)方法调用hide()方法即可实现虚拟按键的完全隐藏,半隐藏和完全显示虚拟按键的实现类似,只是他们对应View属性的组合与完全隐藏不同而言。
[0058] 步 骤 S 2 中 实 现的 具 体 方 法 是 :创 建 一 个 虚 拟 按 键 显 示 服 务(VirtualKeyDisplayService),其主要提供上述三种样式的函数接口,该虚拟按键显示服务在系统启动完毕后,由ActivityManagerService服务启动并运行于系统进程中,这样,各应用程序就可以随时调用该服务提供的三个虚拟按键样式的接口,达到动态设置窗口虚拟按键样式的目的。
[0059] 步骤S4中,在窗口界面刷新时,通过this指针调用重写的requestFeature(intflag)方法,并传递不同的参数,不同的参数代表对虚拟按键的不同处理,至此实现各个模块界面窗口对虚拟按键的灵活控制,无需单独对各个模块进行虚拟按键的处理,最优代码结构,减少代码冗余,提高开发效率。
[0060] 实施例2
[0061] 在实施例1的基础上,本发明还提供一种方便实现安卓设备虚拟按键隐藏和显示的系统,请参照图2所示,其包括:函数接口封装单元10、创建服务单元20、重写单元30和调用单元40。其中:函数接口封装单元10用于将View类的通用属性进行优化组合,封装成虚拟按键的完全隐藏、半隐藏以及完全显示三种样式的函数接口,每种样式的函数接口带有一个相应的函数参数。创建服务单元20用于创建一个提供上述三种样式的函数接口的虚拟按键显示服务,运行于系统的进程中。重写单元30用于根据所述函数接口重写窗口界面类的requestFeature(int flag)方法;调用单元40用于在窗口界面刷新时,调用所述重写的requestFeature(int flag)方法,并传递不同的函数参数。
[0062] 函数接口封装单元10中,所谓的通用属性是指View类实现的功能进行分类,然后将相同属性的View类组合在一起组装成一个函数接口,在窗口界面通过requestFeature(int flag)方法调用该函数接口即可实现虚拟按键的相应功能操作,通用属性包括完全隐藏属性、半隐藏属性以及完全显示属性三种属性,依此优化组合组装的接口为hide()、partyHide()和fullDisplay(),分别代表虚拟按键的完全隐藏函数接口,半隐藏函数接口和完全显示函数接口,并且每种函数接口的组装属性均为共有(public)属性。
[0063] 创建服务单元20中,创建一个虚拟按键显示服务,其主要提供上述三种样式的函数接口,该虚拟按键显示服务在系统启动完毕后,由ActivityManagerService服务启动并运行于系统进程中,这样,各应用程序就可以随时调用该服务提供的三个虚拟按键样式的接口,达到动态设置窗口虚拟按键样式的目的。
[0064] 调用单元40中,在窗口界面刷新时,通过this指针调用重写的requestFeature(int flag)方法,并传递不同的参数,不同的参数代表对虚拟按键的不同处理,至此实现各个模块界面窗口对虚拟按键的灵活控制,无需单独对各个模块进行虚拟按键的处理,最优代码结构,减少代码冗余,提高开发效率。
[0065] 以上所述,仅是本发明较佳实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。