实现安卓设备虚拟按键隐藏和显示的方法和系统的制作方法

xiaoxiao2021-3-1  161

实现安卓设备虚拟按键隐藏和显示的方法和系统的制作方法
【技术领域】
[0001]本发明涉及移动终端显示技术领域,尤其涉及一种方便实现安卓设备虚拟按键隐藏和显示的方法和系统。
【背景技术】
[0002]随着移动互联网的飞速发展,各种安卓设备层出不穷,个性化,差异化成为这些设备追求的亮点,软件的炫酷也是买点之一,所以很多设备软件追求界面的个性化,如对虚拟按键的处理,有时候隐藏,有时显示,也是一个重要的软件特征。
[0003]目前实现虚拟按键隐藏或显示的做法是,在需要的界面窗口添加一些窗口属性,这些属性如:
[0004]View.SYSTEM_UI_FLAG_HIDE_NAVIGAT1N
[0005]View.YSTEM_UI_FLAG_L0ff_PR0FILE
[0006]View.SYSTEM_UI_FLAG_LAYOUT_STABLE
[0007]View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGAT1N
[0008]View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
[0009]View.SYSTEM_UI_FLAG_HIDE_NAVIGAT1N
[0010]View.SYSTEM_UI_FLAG_FULLSCREEN
[0011 ] View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
[0012]View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
[0013]View.SYSTEM_UI_FLAG_VISIBLE
[0014]等等。需要隐藏虚拟按键的窗口通过View.setSystemUiVisibility()方法设置,将这些属性的不同组合作为该函数参数。不需要的页面就不调用该方法设置这些属性,市面上的各应用目前也是这种静态的方法实现虚拟按键隐藏。这种安卓原生的做法降低了开发效率,各个模块负责人单独实现自己页面窗口虚拟按键的隐藏,代码冗余大,单个页面窗口属性一旦设定就不能动态地改变,导致虚拟按键不能够灵活的隐藏和出现。

【发明内容】

[0015]针对现有技术的不足,本发明的目的之一在于实现安卓设备虚拟按键隐藏和显示的方法,其可灵活调用封装的函数接口,实现界面窗口对虚拟按键的灵活控制,提供开发效率。
[0016]为了实现上述目的,本发明采取如下技术方案:
[0017]一种实现安卓设备虚拟按键隐藏和显示的方法,其包括以下步骤:
[0018]步骤S1、将View类的通用属性进行优化组合,封装成虚拟按键的完全隐藏、半隐藏以及完全显示三种样式的函数接口,每种样式的函数接口带有一个相应的函数参数;
[0019]步骤S2、创建一个提供三种样式的函数接口的虚拟按键显示服务,运行于系统的进程中;[°02°] 步骤S3、根据所述函数接口重写窗口界面类的requestFeature(int flag)方法;[0021 ] 步骤S4、在窗口界面刷新时,调用所述重写的requestFeature(int flag)方法,并传递不同的函数参数。
[0022]优选地,所述函数接口的封装属性为共有属性。
[0023]优选地,所述View类的通用属性进行优化组合为根据View类的完全隐藏属性、半隐藏属性以及完全显示属性进行优化组合,优化组合封装的接口分别是虚拟按键的完全隐藏函数接口hide(),半隐藏函数接口partyHideO和完全显示函数接口fullDisplayO。
[0024]优选地,所述步骤S2将所述函数接口实现一个虚拟按键显示服务,运行于系统的进程中具体包括:
[0025]根据所述函数接口创建一个虚拟按键显示服务,该虚拟按键显示服务在系统启动完毕后,由ActivityManagerService服务启动并运行于系统进程中。
[0026]为了解决上述同样的技术问题,本发明还提供了
[0027]一种实现安卓设备虚拟按键隐藏和显示的系统,其包括:
[0028]函数接口封装单元,用于将View类的通用属性进行优化组合,封装成虚拟按键的完全隐藏、半隐藏以及完全显示三种样式的函数接口,每种样式的函数接口带有一个相应的函数参数;
[0029]创建服务单元,用于将所述函数接口实现一个虚拟按键显示服务,运行于系统的进程中;
[0030]重写单元,用于根据所述函数接口重写窗口界面类的requestFeature(int flag)方法;
[0031]调用单元,用于在窗口界面刷新时,调用所述重写的requestFeature(int flag)方法,并传递不同的函数参数。
[0032]优选地,所述函数接口的封装属性为共有属性。
[0033]优选地,所述View类的通用属性进行优化组合为根据View类的完全隐藏属性、半隐藏属性以及完全显示属性进行优化组合,优化组合封装的接口分别是虚拟按键的完全隐藏函数接口hide(),半隐藏函数接口partyHideO和完全显示函数接口fullDisplayO。
[0034]优选地,所述创建服务单元将所述函数接口实现一个虚拟按键显示服务,运行于系统的进程中具体包括:
[0035]根据所述函数接口创建一个虚拟按键显示服务,该虚拟按键显示服务在系统启动完毕后,由ActivityManagerService服务启动并运行于系统进程中。
[0036]本发明阐述的实现安卓设备虚拟按键隐藏和显示的方法和系统,其有益效果在于:
[0037]1、将View类的通用属性进行优化组合,组装成完全隐藏、半隐藏和完全显示三种统一样式的函数接口,并以服务的形式运行于系统中,供各个模块界面窗口灵活调用,实现了动态隐藏和显示虚拟按键。
[0038]2、能最优代码结构,减少代码冗余,提高开放效率。
【附图说明】
[0039]图1是本发明实现安卓设备虚拟按键隐藏和显示的方法的流程图;
[0040]图2是本发明实现安卓设备虚拟按键隐藏和显示的系统的结构框图。
【具体实施方式】
[0041]下面结合附图与具体实施例来对本发明作进一步描述。
[0042]本发明主要是优化View类的组合方式,封装成虚拟按键的完全隐藏、半隐藏和完全显示三种样式的函数接口。在界面窗口加载时,回调onCreateO方法,在该方法中灵活调用封装的函数接口,即可实现该界面窗口对虚拟按键的灵活控制,实现自己的窗口对虚拟按键的灵活处理,具体实施过程详见实施例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()和fullDisplayO,分别代表虚拟按键的完全隐藏函数接口,半隐藏函数接口和完全显示函数接口,并且每种函数接口的组装属性均为共有(public)属性。
[0050]例如:完全隐藏虚拟按键的组合如下,其是将具有完全隐藏属性的View进 行组合:[0051 ] View.SYSTEM_UI_FLAG_LAYOUT_STABLE
[0052]View.SYSTEM_UI_FLAG_LAY0UT_HIDE_NAVIGAT10N
[0053]View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
[0054]View.SYSTEM_UI_FLAG_HIDE_NAVIGAT1N
[0055]View.SYSTEM_UI_FLAG_FULLSCREEN
[0056]View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
[0057]封装的接口为hide(),在窗口界面通过requestFeature(int flag)方法调用hide()方法即可实现虚拟按键的完全隐藏,半隐藏和完全显示虚拟按键的实现类似,只是他们对应View属性的组合与完全隐藏不同而言。
[0058]步骤S2中实现的具体方法是:创建一个虚拟按键显示服务(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()、partyHideO和fullDisplayO,分别代表虚拟按键的完全隐藏函数接口,半隐藏函数接口和完全显示函数接口,并且每种函数接口的组装属性均为共有(public)属性。
[0063]创建服务单元20中,创建一个虚拟按键显示服务,其主要提供上述三种样式的函数接口,该虚拟按键显示服务在系统启动完毕后,由ActivityManagerService服务启动并运行于系统进程中,这样,各应用程序就可以随时调用该服务提供的三个虚拟按键样式的接口,达到动态设置窗口虚拟按键样式的目的。
[0064]调用单元40中,在窗口界面刷新时,通过this指针调用重写的requestFeature(int flag)方法,并传递不同的参数,不同的参数代表对虚拟按键的不同处理,至此实现各个模块界面窗口对虚拟按键的灵活控制,无需单独对各个模块进行虚拟按键的处理,最优代码结构,减少代码冗余,提高开发效率。
[0065]以上所述,仅是本发明较佳实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
【主权项】
1.一种实现安卓设备虚拟按键隐藏和显示的方法,其特征在于,其包括以下步骤: 步骤S1、将View类的通用属性进行优化组合,封装成虚拟按键的完全隐藏、半隐藏以及完全显示三种样式的函数接口,每种样式的函数接口带有一个相应的函数参数; 步骤S2、创建一个提供三种样式的函数接口的虚拟按键显示服务,运行于系统的进程中; 步骤S3、根据所述函数接口重写窗口界面类的requestFeature(int flag)方法; 步骤S4、在窗口界面刷新时,调用所述重写的requestFeature(int flag)方法,并传递不同的函数参数。2.根据权利要求1所述的方法,其特征在于,所述函数接口的封装属性为共有属性。3.根据权利要求1所述的方法,其特征在于,所述View类的通用属性进行优化组合为根据View类的完全隐藏属性、半隐藏属性以及完全显示属性进行优化组合,优化组合封装的接口分别是虚拟按键的完全隐藏函数接口 hide (),半隐藏函数接口 partyHide()和完全显示函数接口如110丨8口1&7()。4.根据权利要求1所述的方法,其特征在于,所述步骤S2将所述函数接口实现一个虚拟按键显示服务,运行于系统的进程中具体包括: 根据所述函数接口创建一个虚拟按键显示服务,该虚拟按键显示服务在系统启动完毕后,由ActivityManagerService服务启动并运行于系统进程中。5.一种实现安卓设备虚拟按键隐藏和显示的系统,其特征在于,其包括: 函数接口封装单元,用于将View类的通用属性进行优化组合,封装成虚拟按键的完全隐藏、半隐藏以及完全显示三种样式的函数接口,每种样式的函数接口带有一个相应的函数参数; 创建服务单元,用于将所述函数接口实现一个虚拟按键显示服务,运行于系统的进程中; 重写单元,用于根据所述函数接口重写窗口界面类的requestFeature(int flag)方法; 调用单元,用于在窗口界面刷新时,调用所述重写的:requestFeature(int flag)方法,并传递不同的函数参数。6.根据权利要求5所述的系统,其特征在于,所述函数接口的封装属性为共有属性。7.根据权利要求5所述的系统,其特征在于,所述View类的通用属性进行优化组合为根据View类的完全隐藏属性、半隐藏属性以及完全显示属性进行优化组合,优化组合封装的接口分别是虚拟按键的完全隐藏函数接口 hide (),半隐藏函数接口 partyHide()和完全显示函数接口如110丨8口1&7()。8.根据权利要求5所述的系统,其特征在于,所述创建服务单元将所述函数接口实现一个虚拟按键显示服务,运行于系统的进程中具体包括: 根据所述函数接口创建一个虚拟按键显示服务,该虚拟按键显示服务在系统启动完毕后,由ActivityManagerService服务启动并运行于系统进程中。
【专利摘要】本发明公开了一种实现安卓设备虚拟按键隐藏和显示的方法,其包括以下步骤:步骤S1、将View类的通用属性进行优化组合,封装成三种样式的函数接口;步骤S2、创建一个提供三种样式的函数接口的虚拟按键显示服务,运行于系统的进程中;步骤S3、重写窗口界面类的requestFeature(int?flag)方法;步骤S4、在窗口界面刷新时,调用所述重写的requestFeature(int?flag)方法,并传递不同的函数参数。本发明还公开了包括函数接口封装单元、创建服务单元、重写单元和调用单元四部分结构的实现安卓设备虚拟按键隐藏和显示的系统。本发明可灵活调用封装的函数接口,实现界面窗口对虚拟按键的灵活控制,同时能最优代码结构,减少代码冗余,提供开发效率。
【IPC分类】G06F9/445, G06F9/44
【公开号】CN105487868
【申请号】CN201510855278
【发明人】钟凡, 杨海晓
【申请人】上海斐讯数据通信技术有限公司
【公开日】2016年4月13日
【申请日】2015年11月30日

最新回复(0)