用戶(hù)界面顯示處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電視技術(shù)領(lǐng)域,尤其涉及用戶(hù)界面顯示處理方法及裝置。
【背景技術(shù)】
[0002]眾所周知,Android操作系統(tǒng)由Linux內(nèi)核、庫(kù)、Dalvik虛擬機(jī)、Android應(yīng)用框架等組成。在智能電視系統(tǒng)中,Android應(yīng)用進(jìn)行圖形界面繪制的方式通常是基于Dalvik虛擬機(jī)和Android視窗框架,因此導(dǎo)致應(yīng)用程序的依賴(lài)性較高,可移植性較差。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的主要目的在于提供一種用戶(hù)界面顯示處理方法及裝置,旨在提高應(yīng)用程序的可移植性。
[0004]為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種用戶(hù)界面顯示處理方法包括以下步驟:
[0005]向Surface管理器申請(qǐng)Surface作為繪制界面的畫(huà)板;
[0006]將初始化后的OpenGL ES與申請(qǐng)作為畫(huà)板的Surface綁定;
[0007]控制OpenGL ES的函數(shù)在所述申請(qǐng)作為畫(huà)板的Surface上進(jìn)行界面繪制;
[0008]在界面繪制完成后,將所有的Surface組合形成畫(huà)板窗口數(shù)據(jù)與顯示幀緩沖窗口數(shù)據(jù)交換;
[0009]將交換后的顯示幀緩沖窗口數(shù)據(jù)輸出顯示。
[0010]優(yōu)選地,所述控制OpenGL ES的函數(shù)在所述申請(qǐng)作為畫(huà)板的Surface上進(jìn)行界面繪制包括:
[0011]控制OpenGL ES的函數(shù)利用OpenGL ES的圖形函數(shù)在所述申請(qǐng)作為畫(huà)板的Surface上繪制圖形,以形成界面;或者,
[0012]控制OpenGL ES的函數(shù)利用紋理貼圖在所述申請(qǐng)作為畫(huà)板的Surface上進(jìn)行貼圖處理,以形成界面。
[0013]優(yōu)選地,在控制OpenGL ES的函數(shù)繪制界面時(shí),利用多張界面圖片實(shí)現(xiàn)界面的動(dòng)畫(huà)顯示,或者,利用OpenGL ES的植染變換實(shí)現(xiàn)界面的動(dòng)畫(huà)顯示。
[0014]優(yōu)選地,所述用戶(hù)界面顯示處理方法還包括:
[0015]與預(yù)置的殼程序建立通訊機(jī)制;
[0016]接收并處理所述殼程序轉(zhuǎn)發(fā)的操作信息;所述操作信息為所述殼程序接收到的輸入信息與預(yù)置的窗口管理器的指令。
[0017]優(yōu)選地,所述用戶(hù)界面顯示處理方法還包括:
[0018]偵測(cè)到用戶(hù)界面顯示指令時(shí),調(diào)用showO函數(shù)顯示所述幀緩沖窗口數(shù)據(jù)對(duì)應(yīng)的界面;
[0019]偵測(cè)到用戶(hù)界面隱藏指令時(shí),調(diào)用hide ()函數(shù)隱藏所述幀緩沖窗口數(shù)據(jù)對(duì)應(yīng)的界面。
[0020]此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種用戶(hù)界面顯示處理裝置包括:
[0021]畫(huà)板申請(qǐng)模塊,用于向Surface管理器申請(qǐng)Surface作為繪制界面的畫(huà)板;
[0022]綁定模塊,用于將初始化后的OpenGL ES與申請(qǐng)作為畫(huà)板的Surface綁定;
[0023]控制模塊,用于控制OpenGL ES的函數(shù)在所述申請(qǐng)作為畫(huà)板的Surface上進(jìn)行界面繪制;
[0024]數(shù)據(jù)交換模塊,用于在界面繪制完成后,將所有的Surface組合形成畫(huà)板窗口數(shù)據(jù)與顯示幀緩沖窗口數(shù)據(jù)交換;
[0025]輸出模塊,用于將交換后的顯示幀緩沖窗口數(shù)據(jù)輸出顯示。
[0026]優(yōu)選地,所述控制模塊具體用于:
[0027]控制OpenGL ES的函數(shù)利用OpenGL ES的圖形函數(shù)在所述申請(qǐng)作為畫(huà)板的Surface上繪制圖形,以形成界面;或者,
[0028]控制OpenGL ES的函數(shù)利用紋理貼圖在所述申請(qǐng)作為畫(huà)板的Surface上進(jìn)行貼圖處理,以形成界面。
[0029]優(yōu)選地,所述控制模塊還用于,在控制OpenGL ES的函數(shù)繪制界面時(shí),利用多張界面圖片實(shí)現(xiàn)界面的動(dòng)畫(huà)顯示,或者,利用OpenGL ES的渲染變換實(shí)現(xiàn)界面的動(dòng)畫(huà)顯示。
[0030]優(yōu)選地,所述用戶(hù)界面顯示處理裝置還包括:
[0031]通訊模塊,用于與預(yù)置的殼程序建立通訊機(jī)制;
[0032]接收模塊,用于接收并處理所述殼程序轉(zhuǎn)發(fā)的操作信息;所述操作信息為所述殼程序接收到的輸入信息與預(yù)置的窗口管理器的指令。
[0033]優(yōu)選地,所述用戶(hù)界面顯示處理裝置還包括:
[0034]調(diào)用模塊,用于偵測(cè)到用戶(hù)界面顯示指令時(shí),調(diào)用showO函數(shù)顯示所述幀緩沖窗口數(shù)據(jù)對(duì)應(yīng)的界面;偵測(cè)到用戶(hù)界面隱藏指令時(shí),調(diào)用hide ()函數(shù)隱藏所述幀緩沖窗口數(shù)據(jù)對(duì)應(yīng)的界面。
[0035]本發(fā)明實(shí)施例通過(guò)向Surface管理器申請(qǐng)Surface作為繪制界面的畫(huà)板;將初始化后的OpenGL ES與申請(qǐng)作為畫(huà)板的Surface綁定;控制OpenGL ES的函數(shù)在所述申請(qǐng)作為畫(huà)板的Surface上進(jìn)行界面繪制;在界面繪制完成后,將所有的Surface組合形成畫(huà)板窗口數(shù)據(jù)與顯示幀緩沖窗口數(shù)據(jù)交換;將交換后的顯示幀緩沖窗口數(shù)據(jù)輸出顯示。由于本發(fā)明實(shí)施例可以顯現(xiàn)用戶(hù)界面的繪制和顯示既能夠不依賴(lài)Android視窗框架、又不依賴(lài)Dalvik虛擬機(jī)就能運(yùn)行,提高了應(yīng)用程序的可移植性。
【附圖說(shuō)明】
[0036]圖1為本發(fā)明用戶(hù)界面顯示處理方法一實(shí)施例的流程示意圖;
[0037]圖2為本發(fā)明用戶(hù)界面顯示處理方法另一實(shí)施例的流程示意圖;
[0038]圖3為本發(fā)明用戶(hù)界面顯示處理裝置一實(shí)施例的功能模塊示意圖;
[0039]圖4為本發(fā)明用戶(hù)界面顯示處理裝置另一實(shí)施例的功能模塊示意圖;
[0040]圖5為本發(fā)明用戶(hù)界面顯示處理裝置又一實(shí)施例的功能模塊示意圖。
[0041]本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
【具體實(shí)施方式】
[0042]應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0043]本發(fā)明主要的目的在于如何實(shí)現(xiàn)一套UI (User Interface,用戶(hù)界面)繪制,既能夠不依賴(lài)Android視窗框架、又不依賴(lài)Dalvik虛擬機(jī)就能運(yùn)行。而且這套UI的繪制既能獨(dú)立運(yùn)行,又能與Android視窗框架同時(shí)無(wú)縫結(jié)合運(yùn)行,用戶(hù)操作起來(lái),跟普通的應(yīng)用程序毫無(wú)區(qū)別?;谶@套UI的繪制,可以很方便地實(shí)現(xiàn)懸浮界面的繪制。在需要顯示的時(shí)候,能夠?qū)崿F(xiàn)立即顯示的速度,在需要隱藏的時(shí)候,也能做到立即顯示。
[0044]參照?qǐng)D1,在一實(shí)施例中,該用戶(hù)界面顯示處理方法包括以下步驟:
[0045]步驟S10,向Surface管理器申請(qǐng)Surface作為繪制界面的畫(huà)板;
[0046]由于需要在終端的屏幕上進(jìn)行用戶(hù)界面繪制,所以必須申請(qǐng)一塊可以進(jìn)行繪畫(huà)的畫(huà)板。這塊畫(huà)板可以是硬件上的幀緩沖,也可以是受操作系統(tǒng)管理的一塊顯示對(duì)象。由于本發(fā)明需要與Android視窗框架同時(shí)無(wú)縫結(jié)合運(yùn)行,所以本發(fā)明向Android的Surface管理器(SurfaceFlinger)申請(qǐng)一個(gè)Surface作為繪制界面的畫(huà)板顯示層。
[0047]步驟S20,將初始化后的OpenGL ES與申請(qǐng)作為畫(huà)板的Surface綁定;
[0048]具體地,OpenGL ES (OpenGL for Embedded Systems)是 OpenGL 三維圖形 API的子集,針對(duì)手機(jī)、PDA和游戲主機(jī)等嵌入式設(shè)備而設(shè)計(jì)。該API由Khronos集團(tuán)定義推廣,Khronos是一個(gè)圖形軟硬件行業(yè)協(xié)會(huì),該協(xié)會(huì)主要關(guān)注圖形和多媒體方面的開(kāi)放標(biāo)準(zhǔn)。OpenGL ES是免授權(quán)費(fèi)的,跨平臺(tái)的,功能完善的2D和3D圖形應(yīng)用程序接口 API,主要針對(duì)多種嵌入式系統(tǒng)專(zhuān)門(mén)設(shè)計(jì)-包括控制臺(tái)、移動(dòng)電話(huà)、手持設(shè)備、家電設(shè)備和汽車(chē)。它由精心定義的桌面OpenGL子集組成,倉(cāng)ij造了軟件與圖形加速間靈活強(qiáng)大的底層交互接口。OpenGLES包含浮點(diǎn)運(yùn)算和定點(diǎn)運(yùn)算系統(tǒng)描述以及EGL針對(duì)便攜設(shè)備的本地視窗系統(tǒng)規(guī)范。OpenGLES 1.X面向功能固定的硬件所設(shè)計(jì)并提供加速支持、圖形質(zhì)量及性能標(biāo)準(zhǔn)。OpenGL ES 2. X則提供包括遮蓋器技術(shù)在內(nèi)的全可編程3D圖形算法。
[0049]在OpenGL ES與Surface綁定后,OpenGL ES就可以與本地系統(tǒng)的窗口系統(tǒng)進(jìn)行通信,以使得OpenGL ES的數(shù)學(xué)圖形運(yùn)算能夠在Surface上進(jìn)行展示。在運(yùn)行OpenGL ES之前首先需要對(duì)OpenGL ES進(jìn)行初始話(huà)處理,在進(jìn)行初始化處理后,再將OpenGL ES與Surface綁定。
[0050]步驟S30,控制OpenGL ES的函數(shù)在所述申請(qǐng)作為畫(huà)板的Surface上進(jìn)行界面繪制;
[0051]本實(shí)施例中,需要使用OpenGL ES的函數(shù)進(jìn)行界面繪制。具體地,在進(jìn)行用戶(hù)界面繪制時(shí),可以直接使用OpenGL ES的函數(shù)在上述Surface