實現(xiàn)安卓設備虛擬按鍵隱藏和顯示的方法和系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及移動終端顯示技術領域,尤其涉及一種方便實現(xiàn)安卓設備虛擬按鍵隱藏和顯示的方法和系統(tǒng)。
【背景技術】
[0002]隨著移動互聯(lián)網(wǎng)的飛速發(fā)展,各種安卓設備層出不窮,個性化,差異化成為這些設備追求的亮點,軟件的炫酷也是買點之一,所以很多設備軟件追求界面的個性化,如對虛擬按鍵的處理,有時候隱藏,有時顯示,也是一個重要的軟件特征。
[0003]目前實現(xiàn)虛擬按鍵隱藏或顯示的做法是,在需要的界面窗口添加一些窗口屬性,這些屬性如:
[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()方法設置,將這些屬性的不同組合作為該函數(shù)參數(shù)。不需要的頁面就不調用該方法設置這些屬性,市面上的各應用目前也是這種靜態(tài)的方法實現(xiàn)虛擬按鍵隱藏。這種安卓原生的做法降低了開發(fā)效率,各個模塊負責人單獨實現(xiàn)自己頁面窗口虛擬按鍵的隱藏,代碼冗余大,單個頁面窗口屬性一旦設定就不能動態(tài)地改變,導致虛擬按鍵不能夠靈活的隱藏和出現(xiàn)。
【發(fā)明內容】
[0015]針對現(xiàn)有技術的不足,本發(fā)明的目的之一在于實現(xiàn)安卓設備虛擬按鍵隱藏和顯示的方法,其可靈活調用封裝的函數(shù)接口,實現(xiàn)界面窗口對虛擬按鍵的靈活控制,提供開發(fā)效率。
[0016]為了實現(xiàn)上述目的,本發(fā)明采取如下技術方案:
[0017]一種實現(xiàn)安卓設備虛擬按鍵隱藏和顯示的方法,其包括以下步驟:
[0018]步驟S1、將View類的通用屬性進行優(yōu)化組合,封裝成虛擬按鍵的完全隱藏、半隱藏以及完全顯示三種樣式的函數(shù)接口,每種樣式的函數(shù)接口帶有一個相應的函數(shù)參數(shù);
[0019]步驟S2、創(chuàng)建一個提供三種樣式的函數(shù)接口的虛擬按鍵顯示服務,運行于系統(tǒng)的進程中;[°02°] 步驟S3、根據(jù)所述函數(shù)接口重寫窗口界面類的requestFeature(int flag)方法;[0021 ] 步驟S4、在窗口界面刷新時,調用所述重寫的requestFeature(int flag)方法,并傳遞不同的函數(shù)參數(shù)。
[0022]優(yōu)選地,所述函數(shù)接口的封裝屬性為共有屬性。
[0023]優(yōu)選地,所述View類的通用屬性進行優(yōu)化組合為根據(jù)View類的完全隱藏屬性、半隱藏屬性以及完全顯示屬性進行優(yōu)化組合,優(yōu)化組合封裝的接口分別是虛擬按鍵的完全隱藏函數(shù)接口hide(),半隱藏函數(shù)接口partyHideO和完全顯示函數(shù)接口fullDisplayO。
[0024]優(yōu)選地,所述步驟S2將所述函數(shù)接口實現(xiàn)一個虛擬按鍵顯示服務,運行于系統(tǒng)的進程中具體包括:
[0025]根據(jù)所述函數(shù)接口創(chuàng)建一個虛擬按鍵顯示服務,該虛擬按鍵顯示服務在系統(tǒng)啟動完畢后,由ActivityManagerService服務啟動并運行于系統(tǒng)進程中。
[0026]為了解決上述同樣的技術問題,本發(fā)明還提供了
[0027]一種實現(xiàn)安卓設備虛擬按鍵隱藏和顯示的系統(tǒng),其包括:
[0028]函數(shù)接口封裝單元,用于將View類的通用屬性進行優(yōu)化組合,封裝成虛擬按鍵的完全隱藏、半隱藏以及完全顯示三種樣式的函數(shù)接口,每種樣式的函數(shù)接口帶有一個相應的函數(shù)參數(shù);
[0029]創(chuàng)建服務單元,用于將所述函數(shù)接口實現(xiàn)一個虛擬按鍵顯示服務,運行于系統(tǒng)的進程中;
[0030]重寫單元,用于根據(jù)所述函數(shù)接口重寫窗口界面類的requestFeature(int flag)方法;
[0031]調用單元,用于在窗口界面刷新時,調用所述重寫的requestFeature(int flag)方法,并傳遞不同的函數(shù)參數(shù)。
[0032]優(yōu)選地,所述函數(shù)接口的封裝屬性為共有屬性。
[0033]優(yōu)選地,所述View類的通用屬性進行優(yōu)化組合為根據(jù)View類的完全隱藏屬性、半隱藏屬性以及完全顯示屬性進行優(yōu)化組合,優(yōu)化組合封裝的接口分別是虛擬按鍵的完全隱藏函數(shù)接口hide(),半隱藏函數(shù)接口partyHideO和完全顯示函數(shù)接口fullDisplayO。
[0034]優(yōu)選地,所述創(chuàng)建服務單元將所述函數(shù)接口實現(xiàn)一個虛擬按鍵顯示服務,運行于系統(tǒng)的進程中具體包括:
[0035]根據(jù)所述函數(shù)接口創(chuàng)建一個虛擬按鍵顯示服務,該虛擬按鍵顯示服務在系統(tǒng)啟動完畢后,由ActivityManagerService服務啟動并運行于系統(tǒng)進程中。
[0036]本發(fā)明闡述的實現(xiàn)安卓設備虛擬按鍵隱藏和顯示的方法和系統(tǒng),其有益效果在于:
[0037]1、將View類的通用屬性進行優(yōu)化組合,組裝成完全隱藏、半隱藏和完全顯示三種統(tǒng)一樣式的函數(shù)接口,并以服務的形式運行于系統(tǒng)中,供各個模塊界面窗口靈活調用,實現(xiàn)了動態(tài)隱藏和顯示虛擬按鍵。
[0038]2、能最優(yōu)代碼結構,減少代碼冗余,提高開放效率。
【附圖說明】
[0039]圖1是本發(fā)明實現(xiàn)安卓設備虛擬按鍵隱藏和顯示的方法的流程圖;
[0040]圖2是本發(fā)明實現(xiàn)安卓設備虛擬按鍵隱藏和顯示的系統(tǒng)的結構框圖。
【具體實施方式】
[0041]下面結合附圖與具體實施例來對本發(fā)明作進一步描述。
[0042]本發(fā)明主要是優(yōu)化View類的組合方式,封裝成虛擬按鍵的完全隱藏、半隱藏和完全顯示三種樣式的函數(shù)接口。在界面窗口加載時,回調onCreateO方法,在該方法中靈活調用封裝的函數(shù)接口,即可實現(xiàn)該界面窗口對虛擬按鍵的靈活控制,實現(xiàn)自己的窗口對虛擬按鍵的靈活處理,具體實施過程詳見實施例1和實施例2。
[0043]實施例一
[0044]請參照圖1,本發(fā)明公開的一種方便實現(xiàn)安卓設備虛擬按鍵隱藏和顯示的方法,其包括以下步驟:
[0045]步驟S1、將View類的通用(或常用)屬性進行優(yōu)化組合,封裝成虛擬按鍵的完全隱藏、半隱藏以及完全顯示三種樣式的函數(shù)接口,每種樣式的函數(shù)接口帶有一個相應的函數(shù)參數(shù);
[0046]步驟S2、創(chuàng)建一個提供三種樣式的函數(shù)接口的虛擬按鍵顯示服務,運行于系統(tǒng)的進程中;
[0047]步驟S3、根據(jù)所述函數(shù)接口重寫窗口界面類的requestFeature(int flag)方法;
[0048]步驟S4、在窗口界面刷新時,調用所述重寫的requestFeature(int flag)方法,并傳遞不同的函數(shù)參數(shù)。
[0049]其中,步驟S1中,所謂的通用屬性是指View類實現(xiàn)的功能進行分類,然后將相同屬性的View類組合在一起組裝成一個函數(shù)接口,在窗口界面通過requestFeature(int flag)方法調用該函數(shù)接口即可實現(xiàn)虛擬按鍵的相應功能操作,通用屬性包括完全隱藏屬性、半隱藏屬性以及完全顯示屬性三種屬性,依此優(yōu)化組合組裝的接口為hide()、partyHide()和fullDisplayO,分別代表虛擬按鍵的完全隱藏函數(shù)接口,半隱藏函數(shù)接口和完全顯示函數(shù)接口,并且每種函數(shù)接口的組裝屬性均為共有(public)屬性。
[0050]例如:完全隱藏虛擬按鍵的組合如下,其是將具有完全隱藏屬性的View進