專(zhuān)利名稱(chēng):一種利用OpenGL ES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于操作系統(tǒng)設(shè)計(jì)技術(shù)領(lǐng)域,尤其涉及ー種利用OpenGL ES實(shí)現(xiàn)安卓(Android)操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法和裝置。
背景技術(shù):
OpenGL ES (OpenGL for E mbedded Systems)是免授權(quán)費(fèi)的,跨平臺(tái)的,功能完善的2D和3D圖形應(yīng)用程序接ロ 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是從OpenGL裁剪的定制而來(lái)的,去除了 glBegin/glEnd,四邊形(GL_QUADS)、多邊形(GL_P0LYG0NS)等復(fù)雜圖元等許多非絕對(duì)必要的特性。經(jīng)過(guò)多年發(fā)展,現(xiàn)在主要有兩個(gè)版本,OpenGL ES I. x面向功能固定的硬件所設(shè)計(jì)并提供加速支持、圖形質(zhì)量及性能標(biāo)準(zhǔn),OpenGL ES 2. x則提供包括遮蓋器技術(shù)在內(nèi)的全可編程3D圖形算法。Android操作系統(tǒng)最初由Andy Rubin開(kāi)發(fā),最初主要支持手機(jī)。2005年由Google收購(gòu)注資,并組建開(kāi)放手機(jī)聯(lián)盟開(kāi)發(fā)改良,逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上。Google公司在2007年11月5日正式公布這個(gè)操作系統(tǒng),2011年第一季度,Android在全球的市場(chǎng)份額首次超過(guò)塞班系統(tǒng),躍居全球第一。2011年11月數(shù)據(jù),Android占據(jù)智能手機(jī)操作系統(tǒng)市場(chǎng)52. 5%的份額,中國(guó)市場(chǎng)占有率為58%。隨著Android系統(tǒng)越來(lái)越受歡迎,以及可用于移動(dòng)設(shè)備的硬件日益強(qiáng)大,用戶對(duì)于界面的要求也隨之提高,而3D界面無(wú)疑可以給用戶更好的體驗(yàn)。然而,現(xiàn)有版本的Android操作系統(tǒng)的桌面并未能提供3D界面。
發(fā)明內(nèi)容
鑒于現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明的所要解決的技術(shù)問(wèn)題在于提供ー種能夠更快速、直觀的查找和選擇目標(biāo)屏幕,并展現(xiàn)出絢麗的3D效果的安卓操作系統(tǒng)桌面。為了解決上述的技術(shù)問(wèn)題,本發(fā)明提供了ー種利用OpenGL ES實(shí)現(xiàn)安卓(Android)操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法,其特征在于包括如下步驟a)、在桌面初始化完成后獲取各個(gè)屏幕截圖;b)、重新繪制修飾各個(gè)屏幕截圖,產(chǎn)生新的縮略圖;C)、使用OpenGL ES繪制圖形,并用所產(chǎn)生的新的縮略圖產(chǎn)生紋理,將產(chǎn)生的紋理綁定給相應(yīng)的圖形;d)訂制所述圖形的運(yùn)動(dòng)軌跡;e)、根據(jù)手勢(shì)觸發(fā)事件,使所述圖形在軌跡上運(yùn)動(dòng);f)、手勢(shì)結(jié)束后判定顯示位于最前端的屏幕。進(jìn)ー步,本發(fā)明所述的利用OpenGL ES實(shí)現(xiàn)安卓(Android)操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法的步驟b)中重新繪制修飾各個(gè)屏幕截圖的操作包括添加背景和/或頁(yè)碼。進(jìn)ー步,本發(fā)明所述的利用OpenGL ES實(shí)現(xiàn)安卓(Android)操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法的步驟c)中還對(duì)綁定了紋理的所述圖形進(jìn)行渲染操作。進(jìn)ー步,本發(fā)明所述的利用OpenGL ES實(shí)現(xiàn)安卓(Android)操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法還包括步驟g)、在桌面內(nèi)容發(fā)生變化時(shí)更新屏幕截圖及相應(yīng)圖形紋理。
進(jìn)ー步,本發(fā)明所述的利用OpenGL ES實(shí)現(xiàn)安卓(Android)操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法的步驟d)中訂制所述圖形的運(yùn)動(dòng)軌跡還包括設(shè)定所述圖形的初始坐標(biāo)。此外,本發(fā)明還提供ー種利用OpenGL ES實(shí)現(xiàn)安卓(Android)操作系統(tǒng)桌面3D轉(zhuǎn)屏的裝置,其特征在于包括如下模塊屏幕截圖獲取模塊,用于在桌面初始化完成后獲取各個(gè)屏幕截圖;縮略圖產(chǎn)生模塊,用于重新繪制修飾所述各個(gè)屏幕截圖并產(chǎn)生新的縮略圖;紋理綁定模塊,用于使用OpenGL ES繪制圖形,并用所產(chǎn)生的新的縮略圖產(chǎn)生紋理,將產(chǎn)生的紋理綁定給相應(yīng)的圖形;軌跡訂制模塊,用于訂制所述圖形的運(yùn)動(dòng)軌跡;觸發(fā)圖形運(yùn)動(dòng)模塊,用于根據(jù)手勢(shì)觸發(fā)事件,使所述圖形在軌跡上運(yùn)動(dòng);顯示模塊,用于在手勢(shì)結(jié)束后顯示位于最前端的屏幕的模塊。進(jìn)ー步,本發(fā)明所述的利用OpenGL ES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的裝置,其特征在于所述縮略圖產(chǎn)生模塊還可以對(duì)所產(chǎn)生的新的縮略圖添加背景和/或頁(yè)碼。進(jìn)ー步,本發(fā)明所述的利用OpenGL ES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的裝置,其特征在于所述紋理綁定模塊還對(duì)綁定了紋理的所述圖形進(jìn)行渲染操作。進(jìn)ー步,本發(fā)明所述的利用OpenGL ES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的裝置,其特征在于還包括更新模塊,用于在桌面內(nèi)容發(fā)生變化時(shí)更新屏幕截圖及相應(yīng)圖形紋理。進(jìn)ー步,本發(fā)明所述的利用OpenGL ES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的裝置,其特征在于所述軌跡訂制模塊還設(shè)定所述圖形的初始坐標(biāo)。本發(fā)明所述的利用OpenGL ES實(shí)現(xiàn)安卓(Android)操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法及裝置使得安卓(Android)操作系統(tǒng)桌面不需要一頁(yè)ー頁(yè)的翻找就可以直觀的看到所有屏幕,從而可以快速的切換到所需的屏幕,并且通過(guò)OpenGL ES制作的3D的場(chǎng)景更為絢麗。
圖I是本發(fā)明所述的利用OpenGL ES實(shí)現(xiàn)安卓(Android)操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法的流程圖。圖2是本發(fā)明所述的利用OpenGL ES實(shí)現(xiàn)安卓(Android)操作系統(tǒng)桌面3D轉(zhuǎn)屏的裝置的功能模塊圖。
具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)ー步詳細(xì)的說(shuō)明圖I是本發(fā)明所述的利用OpenGL ES實(shí)現(xiàn)安卓(Android)操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法的流程圖。如圖I所述,本發(fā)明方法具體執(zhí)行過(guò)程如下
a)、在桌面初始化完成后獲取各個(gè)屏幕截圖;具體為操作為.在桌面初始化完成后,啟動(dòng)線程,在線程中調(diào)用函數(shù)SetChildrenDrawingCacheEnabled O 開(kāi)啟 cache,然后再調(diào)用函數(shù) getDrawingCache O 獲取workspace的各個(gè)屏幕的截圖。b)、重新繪制修飾各個(gè)屏幕截圖,產(chǎn)生新的縮略圖;具體為操作為.利用Matrix的函數(shù)setScaleO把各個(gè)屏幕截圖講行縮小操作,生成新的縮略圖,然后用canvas的drawBitmapO函數(shù)為縮略圖添加背景、頁(yè)碼等對(duì)縮略圖進(jìn)行修飾,通過(guò)為縮略圖添加背景可以顯示更豐富的縮略圖,添加頁(yè)碼可以讓用戶直觀了解倒該縮略圖的順序,使得顯示更直觀。然后調(diào)用MyRender的setBitmapsO函數(shù),將做好的縮略圖傳遞給OpenGL ES,并儲(chǔ)存在ArrayList中。 C)、使用OpenGL ES繪制圖形,并用所產(chǎn)生的新的縮略圖產(chǎn)生紋理,將產(chǎn)生的紋理綁定給相應(yīng)的圖形;具體操作為.設(shè)計(jì)好各個(gè)縮略圖的頂點(diǎn)坐標(biāo),并存儲(chǔ)在FloatbBuffer中,然后通過(guò)調(diào)用利用OpenGL ES的glVertexpointer O函數(shù)繪制圖形。然后,使用· GLUtils的texImage2D O函數(shù)將之前傳遞過(guò)來(lái)的縮略圖生成紋理,調(diào)用函數(shù)glDrawArrays O把生成的文理其綁定給相應(yīng)的圖形,對(duì)圖形進(jìn)行相應(yīng)的渲染操作,使其更加美觀。d)訂制所述圖形的運(yùn)動(dòng)軌跡;具體操作為.根據(jù)曲線方程式(如橢圓、菱形等),來(lái)計(jì)算定制縮略圖的運(yùn)動(dòng)軌跡(頂點(diǎn)x、y、z的坐標(biāo)值),首先設(shè)定所述圖形的初始坐標(biāo),然后依此坐標(biāo)開(kāi)始訂制所述圖形的運(yùn)動(dòng)軌跡。e)、根據(jù)手勢(shì)觸發(fā)事件,使所述圖形在軌跡上運(yùn)動(dòng);.當(dāng)手勢(shì)動(dòng)作觸發(fā)劃屏事件,初始化各個(gè)縮略圖的位置(初始坐標(biāo))并顯示此3D界面。根據(jù)手指滑動(dòng)的動(dòng)作,獲取手指滑動(dòng)的X軸和I軸的距離。根據(jù)手指滑動(dòng)的X軸和I軸的距離使各個(gè)縮略圖在軌跡上運(yùn)動(dòng)。f)、手勢(shì)結(jié)束后判定顯示位于最前端的屏幕。具體操作為當(dāng)手勢(shì)結(jié)束吋,即手指離開(kāi)屏幕后,調(diào)用函數(shù)compareZO,
private Thumbnail compareZ() {
Thumbiiail t = thl .getZ() > th2.geiZ() till · th2,
……逐一比較各個(gè)縮略圖的z值,并返回值最大那ー個(gè)。return t;
}判定各個(gè)縮略圖的z值,z值最大的為要顯示的屏幕。另外當(dāng)桌面內(nèi)容發(fā)生變化時(shí),需要調(diào)用
權(quán)利要求
1.一種利用OpenGL ES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法,其特征在于包括如下步驟 a)、在桌面初始化完成后獲取各個(gè)屏幕截圖; b)、重新繪制修飾各個(gè)屏幕截圖,產(chǎn)生新的縮略圖; C)、使用OpenGL ES繪制圖形,并用所產(chǎn)生的新的縮略圖產(chǎn)生紋理,將產(chǎn)生的紋理綁定給相應(yīng)的圖形; d)、訂制所述圖形的運(yùn)動(dòng)軌跡; e)、根據(jù)手勢(shì)觸發(fā)事件,使所述圖形在軌跡上運(yùn)動(dòng); f)、手勢(shì)結(jié)束后顯示位于最前端的屏幕。
2.根據(jù)權(quán)利要求I所述的利用OpenGLES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法,其特征在于所述步驟b)中重新繪制修飾各個(gè)屏幕截圖的操作包括添加背景和/或頁(yè)碼。
3.根據(jù)權(quán)利要求I或2所述的利用OpenGLES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法,其特征在于所述步驟c)中還對(duì)綁定了紋理的所述圖形進(jìn)行渲染操作。
4.根據(jù)權(quán)利要求I所述的利用OpenGLES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法,其特征在于還包括所述步驟g)在桌面內(nèi)容發(fā)生變化時(shí)更新屏幕截圖及相應(yīng)圖形紋理。
5.根據(jù)權(quán)利要求I所述的利用OpenGLES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法,其特征在于所述步驟d)中訂制所述圖形的運(yùn)動(dòng)軌跡還包括設(shè)定所述圖形的初始坐標(biāo)。
6.一種利用OpenGL ES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的裝置,其特征在于包括如下模塊 屏幕截圖獲取模塊,用于在桌面初始化完成后獲取各個(gè)屏幕截圖; 縮略圖產(chǎn)生模塊,用于重新繪制修飾所述各個(gè)屏幕截圖并產(chǎn)生新的縮略圖; 紋理綁定模塊,用于使用OpenGL ES繪制圖形,并用所產(chǎn)生的新的縮略圖產(chǎn)生紋理,將產(chǎn)生的紋理綁定給相應(yīng)的圖形; 軌跡訂制模塊,用于訂制所述圖形的運(yùn)動(dòng)軌跡; 觸發(fā)圖形運(yùn)動(dòng)模塊,用于根據(jù)手勢(shì)觸發(fā)事件,使所述圖形在軌跡上運(yùn)動(dòng); 顯示模塊,用于在手勢(shì)結(jié)束后顯示位于最前端的屏幕的模塊。
7.根據(jù)權(quán)利要求6所述的利用OpenGLES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的裝置,其特征在于所述縮略圖產(chǎn)生模塊還可以對(duì)所產(chǎn)生的新的縮略圖添加背景和/或頁(yè)碼。
8.根據(jù)權(quán)利要求6或7所述的利用OpenGLES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的裝置,其特征在于所述紋理綁定模塊還對(duì)綁定了紋理的所述圖形進(jìn)行渲染操作。
9.根據(jù)權(quán)利要求6所述的利用OpenGLES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的裝置,其特征在于還包括更新模塊,用于在桌面內(nèi)容發(fā)生變化時(shí)更新屏幕截圖及相應(yīng)圖形紋理。
10.根據(jù)權(quán)利要求6所述的利用OpenGLES實(shí)現(xiàn)安卓操作系統(tǒng)桌面3D轉(zhuǎn)屏的裝置,其特征在于所述軌跡訂制模塊還設(shè)定所述圖形的初始坐標(biāo)。
全文摘要
一種利用OpenGL ES實(shí)現(xiàn)安卓(Android)操作系統(tǒng)桌面3D轉(zhuǎn)屏的方法及裝置,其利用OpenGL ES實(shí)現(xiàn)3D效果,應(yīng)用于Android開(kāi)發(fā)平臺(tái)的桌面上。在屏幕初始化后獲取所有屏幕截圖;制作出修飾好的各個(gè)屏幕縮略圖,作為OpenGLES的紋理貼圖;用OpenGL ES繪制圖形并綁定紋理,渲染圖形使其透明;訂制圖形運(yùn)動(dòng)軌跡,根據(jù)手勢(shì)觸發(fā)事件使縮略圖完成運(yùn)動(dòng);在桌面內(nèi)容發(fā)生變化時(shí)更新相應(yīng)的屏幕截圖和圖形紋理;本發(fā)明能夠更快速、直觀的查找和選擇目標(biāo)屏幕,并展現(xiàn)出絢麗的3D效果。
文檔編號(hào)G06F9/44GK102681853SQ20121015469
公開(kāi)日2012年9月19日 申請(qǐng)日期2012年5月17日 優(yōu)先權(quán)日2012年5月17日
發(fā)明者劉佳琪, 左飛, 榮毅良 申請(qǐng)人:中科方德軟件有限公司