專利名稱:圖像顯示方法、裝置及移動(dòng)終端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖形圖像處理領(lǐng)域,特別涉及一種圖像顯示方法、裝置及移動(dòng)終端。
背景技術(shù):
圖像瀏覽是諸如智能手機(jī)、平板電腦或者電子書閱讀器之類的移動(dòng)終端中最為常用和重要的功能之一。圖像瀏覽的用戶體驗(yàn)是移動(dòng)終端整體用戶體驗(yàn)中的一個(gè)非常重要的部分。圖像可以采用兩種格式進(jìn)行存儲(chǔ),一種是占用數(shù)據(jù)量大,但是能夠直接進(jìn)行顯示的位圖格式;另一種是占用數(shù)據(jù)量小,但是不能夠直接進(jìn)行顯示的壓縮格式,比如JPEG(Joint Photographic Experts Group,聯(lián)合圖像專家小組)壓縮格式。為了節(jié)省移動(dòng)終端有限的存儲(chǔ)空間,移動(dòng)終端常采用壓縮格式來對圖像進(jìn)行存儲(chǔ)。當(dāng)移動(dòng)終端需要顯示一張壓縮格式的圖像時(shí),需要首先從文件中讀出壓縮格式的圖像數(shù)據(jù);然后解壓并解碼該圖像數(shù)據(jù)以得到對應(yīng)的位圖數(shù)據(jù);最后把位圖數(shù)據(jù)直接顯示在界面上。由于上述步驟中的“解壓”和“解碼”均需要花費(fèi)一定的時(shí)間,所以在需要同時(shí)顯示多張壓縮格式的圖像時(shí),在移動(dòng)終端的界面上很容易發(fā)生卡頓或者顯示黑色馬賽克。為了解決卡頓的現(xiàn)象,已有的一種圖像顯示方法,包括第一,在多張壓縮格式的圖像第一次同時(shí)顯示時(shí),生成該多張圖像的縮略圖,該縮略圖也是壓縮格式的圖像;第二,在該多張壓縮格式的圖像第二次同時(shí)顯示時(shí),在當(dāng)前界面上顯示其中一部分圖像的縮略圖,并且將另外一部分還未顯示的圖像的縮略圖解壓和解碼為位圖數(shù)據(jù)之后,預(yù)先加載入內(nèi)存中;第三,當(dāng)用戶快速滑動(dòng)當(dāng)前界面時(shí),將已經(jīng)預(yù)先加載入內(nèi)存的另外一部分還未顯示的圖像的縮略圖進(jìn)行顯示。在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)上述方案至少存在以下問題當(dāng)需要同時(shí)顯示的壓縮格式的圖像非常多時(shí),比如超過1000張圖像時(shí),對應(yīng)地會(huì)有非常多的圖像數(shù)據(jù)需要預(yù)先加載入內(nèi)存中,而移動(dòng)終端的內(nèi)存空間本身就非常緊張,經(jīng)常會(huì)無法滿足這種大內(nèi)存需求。
發(fā)明內(nèi)容
為了解決已有方案對內(nèi)存需求較大的問題,本發(fā)明實(shí)施例提供了一種圖像顯示方法、裝置及移動(dòng)終端。所述技術(shù)方案如下根據(jù)本發(fā)明的一個(gè)方面,提供了一種圖像顯示方法,所述方法包括將當(dāng)前顯示區(qū)域?qū)?yīng)的當(dāng)前圖像和位于所述當(dāng)前圖像之前和/或之后的對應(yīng)圖像載入預(yù)定大小的預(yù)讀緩沖區(qū),所述當(dāng)前圖像載入所述預(yù)讀緩沖區(qū)后所占用的部分作為顯示緩沖區(qū);將所述顯示緩沖區(qū)中的圖像進(jìn)行顯示。進(jìn)一步地,所述將當(dāng)前顯示區(qū)域?qū)?yīng)的當(dāng)前圖像和位于所述當(dāng)前圖像之前和/或之后的對應(yīng)圖像載入預(yù)定大小的預(yù)讀緩沖區(qū),包括
根據(jù)所述當(dāng)前顯示區(qū)域確定所述當(dāng)前圖像和對應(yīng)圖像;在預(yù)定大小的所述預(yù)讀緩沖區(qū)中設(shè)置與所述當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像分別對應(yīng)的對象;對所述當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,獲得所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù);將所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù)分別載入對應(yīng)的對象中;所述將所述顯示緩沖區(qū)中的圖像進(jìn)行顯示,包括從所述顯示緩沖區(qū)所包括的對象中讀取所述當(dāng)前圖像的位圖數(shù)據(jù);根據(jù)所述當(dāng)前圖像的位圖數(shù)據(jù)顯示所述當(dāng)前圖像。進(jìn)一步地,所述預(yù)讀緩沖區(qū)中包含預(yù)先創(chuàng)建的N個(gè)對象,所述在所述預(yù)讀緩沖區(qū)中設(shè)置與所述當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像分別對應(yīng)的對象,包括對于每個(gè)圖像,計(jì)算所述圖像的下標(biāo)i,所述下標(biāo)i=M0D(所述圖像的圖像序號,N);將所述預(yù)讀緩沖區(qū)中的第i個(gè)對象復(fù)用為所述圖像的對象,其中,i小于N, i為自然數(shù),N為正整數(shù)。進(jìn)一步地,所述對所述當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,獲得所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù),包括設(shè)置至少兩個(gè)子線程,各個(gè)子線程互相獨(dú)立且并行,每個(gè)子線程單獨(dú)完成所述當(dāng)前圖像和對應(yīng)圖像中的一個(gè)圖像的解壓和解碼,從而獲得所述圖像的位圖數(shù)據(jù);所述將所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù)載入對應(yīng)的對象中,包括所述子線程在獲得所述圖像的位圖數(shù)據(jù)之后,直接將所述圖像的位圖數(shù)據(jù)載入對應(yīng)的對象中。進(jìn)一步地,所述預(yù)讀緩沖區(qū)中包含預(yù)先創(chuàng)建的N個(gè)對象,所述子線程在獲得所述圖像的位圖數(shù)據(jù)之后,直接將所述圖像的位圖數(shù)據(jù)載入對應(yīng)的對象中,包括所述子線程在獲得所述圖像的位圖數(shù)據(jù)之后,計(jì)算所述圖像的下標(biāo)i,所述下標(biāo)i=M0D (所述圖像的圖像序號,N);所述子線程將所述圖像的位圖數(shù)據(jù)載入所述預(yù)讀緩沖區(qū)中的第i個(gè)對象中。根據(jù)本發(fā)明的另一方面,提供了一種圖像顯示裝置,所述裝置包括數(shù)據(jù)載入模塊,用于將當(dāng)前顯示區(qū)域?qū)?yīng)的當(dāng)前圖像和位于所述當(dāng)前圖像之前和/或之后的對應(yīng)圖像載入預(yù)定大小的預(yù)讀緩沖區(qū),所述當(dāng)前圖像載入所述預(yù)讀緩沖區(qū)后所占用的部分作為顯示緩沖區(qū);圖像顯示模塊,用于將所述緩沖區(qū)選擇模塊選擇的顯示緩沖區(qū)中的圖像進(jìn)行顯
/Jn o進(jìn)一步地,所述數(shù)據(jù)載入模塊,包括圖像確定單元、對象設(shè)置單元、圖像處理單元和數(shù)據(jù)載入單元;所述圖像確定單元,用于根據(jù)所述當(dāng)前顯示區(qū)域確定所述當(dāng)前圖像和對應(yīng)圖像;所述對象設(shè)置單元,用于在預(yù)定大小的所述預(yù)讀緩沖區(qū)中設(shè)置與所述圖像確定單兀確定的當(dāng)如圖像和對應(yīng)圖像中的每個(gè)圖像分別對應(yīng)的對象;
所述圖像處理單元,用于對所述圖像確定單元確定的當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,獲得所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù);所述數(shù)據(jù)載入單元,用于將所述圖像處理單元得到的所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù)分別載入所述對象設(shè)置單元設(shè)置的對應(yīng)的對象中;所述圖像顯示模塊,包括數(shù)據(jù)讀取單元和圖像顯示單元;所述數(shù)據(jù)讀取單元,用于從所述顯示緩沖區(qū)所包括的對象中讀取所述當(dāng)前圖像的位圖數(shù)據(jù);所述圖像顯示單元,用于根據(jù)所述數(shù)據(jù)讀取單元讀取到的所述當(dāng)前圖像的位圖數(shù)據(jù)顯示所述當(dāng)前圖像。進(jìn)一步地,所述預(yù)讀緩沖區(qū)中包含預(yù)先創(chuàng)建的N個(gè)對象,所述對象設(shè)置單元,包括下標(biāo)計(jì)算子單元和對象復(fù)用子單元;所述下標(biāo)計(jì)算子單元,用于對于每個(gè)圖像,計(jì)算所述圖像的下標(biāo)i,所述下標(biāo)i=M0D (所述圖像的圖像序號,N);所述對象復(fù)用子單元,用于將所述預(yù)讀緩沖區(qū)中的第i個(gè)對象復(fù)用為所述圖像的對象,其中,i小于N, i為自然數(shù),N為正整數(shù)。進(jìn)一步地,所述圖像處理單元,用于設(shè)置至少兩個(gè)子線程,各個(gè)子線程互相獨(dú)立且并行,每個(gè)子線程單獨(dú)完成所述當(dāng)前圖像和對應(yīng)圖像中的一個(gè)圖像的解壓和解碼,從而獲得所述圖像的位圖數(shù)據(jù);所述數(shù)據(jù)載入單元包括所述子線程,用于在所述子線程獲得所述圖像的位圖數(shù)據(jù)之后,由所述子線程直接將所述圖像的位圖數(shù)據(jù)載入對應(yīng)的對象中。進(jìn)一步地,所述預(yù)讀緩沖區(qū)中包含預(yù)先創(chuàng)建的N個(gè)對象,所述數(shù)據(jù)載入單元包括所述子線程,用于在所述子線程獲得所述圖像的位圖數(shù)據(jù)之后,計(jì)算所述圖像的下標(biāo)i,所述下標(biāo)i=M0D (所述圖像的圖像序號,N);由所述子線程將所述圖像的位圖數(shù)據(jù)載入所述預(yù)讀緩沖區(qū)中的第i個(gè)對象中。根據(jù)本發(fā)明的再一方面,提供了一種移動(dòng)終端,包括所述另一方面或者另一方面各種進(jìn)一步方案中任一所述的圖像顯示裝置。本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是通過將當(dāng)前圖像和對應(yīng)圖像動(dòng)態(tài)地載入預(yù)定大小的預(yù)讀緩沖區(qū)中,解決了已有方案對內(nèi)存需求較大的問題;達(dá)到了不論顯示多少張圖像,都使用預(yù)定大小的預(yù)讀緩沖區(qū)來快速顯示圖像的效果。
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例一提供的圖像顯示方法的方法流程圖2是本發(fā)明實(shí)施例二提供的圖像顯示方法的方法流程圖;圖3A和圖3B是本發(fā)明實(shí)施例二提供的當(dāng)前圖像和對應(yīng)圖像的實(shí)施示意圖;圖4是本發(fā)明實(shí)施例三提供的圖像顯示方法的方法流程圖;圖5是本發(fā)明實(shí)施例四提供的圖像顯示方法的方法流程圖;圖6是本發(fā)明實(shí)施例五提供的圖像顯示裝置的結(jié)構(gòu)方框圖;圖7是本發(fā)明實(shí)施例六提供的圖像顯示裝置的結(jié)構(gòu)方框圖;圖8是本發(fā)明實(shí)施例七提供的圖像顯示裝置的結(jié)構(gòu)方框圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。實(shí)施例一請參考圖1,其示出了本發(fā)明實(shí)施例一提供的圖像顯示方法的方法流程圖。該圖像顯示方法,包括步驟102,將當(dāng)前顯示區(qū)域?qū)?yīng)的當(dāng)前圖像和位于當(dāng)前圖像之前和/或之后的對應(yīng)圖像載入預(yù)定大小的預(yù)讀緩沖區(qū),當(dāng)前圖像載入預(yù)讀緩沖區(qū)后所占用的部分作為顯示緩沖區(qū);步驟104,將顯示緩沖區(qū)中的圖像進(jìn)行顯示。綜上所述,本發(fā)明實(shí)施例提供的圖像顯示方法,通過將當(dāng)前圖像和對應(yīng)圖像動(dòng)態(tài)地載入預(yù)定大小的預(yù)讀緩沖區(qū)中,解決了已有方案對內(nèi)存需求較大的問題;達(dá)到了不論顯示多少張圖像,都使用預(yù)定大小的預(yù)讀緩沖區(qū)來快速顯示圖像的效果。實(shí)施例二請參考圖2,其示出了本發(fā)明實(shí)施例二提供的圖像顯示方法的方法流程圖。本實(shí)施例主要以該圖像顯示方法應(yīng)用于諸如智能手機(jī)、平板電腦或者電子書閱讀器之類的移動(dòng)終端中來舉例說明。該圖像顯示方法,包括步驟202,根據(jù)當(dāng)前顯示區(qū)域確定當(dāng)前圖像和對應(yīng)圖像;用戶在移動(dòng)終端的屏幕上拖動(dòng)顯示多張壓縮格式的圖像時(shí),比如1000張圖像,受限于移動(dòng)終端的屏幕面積,一次顯示過程僅能夠顯示一部分圖像,而無法顯示出全部的1000張圖像。本文中將當(dāng)前顯示區(qū)域內(nèi)的圖像稱之為當(dāng)前圖像,比如圖3A中的圖像4、圖像5和圖像6 ;未能顯示的但位于當(dāng)前圖像之前和/或之后的圖像稱之為對應(yīng)圖像,比如圖3A中位于當(dāng)前圖像之前的圖像1、圖像2和圖像3,以及位于當(dāng)前圖像之后的圖像7、圖像8和圖像9均為對應(yīng)圖像。對應(yīng)圖像與當(dāng)前圖像之間的相對界線可以預(yù)先設(shè)定,本實(shí)施例中僅以當(dāng)前圖像之前一行和當(dāng)前圖像之后一行的圖像作為對應(yīng)圖像來舉例說明,具體實(shí)施例中可以不同。不論在靜止?fàn)顟B(tài),還是用戶高速拖動(dòng)狀態(tài),移動(dòng)終端根據(jù)當(dāng)前顯示區(qū)域都能夠確定內(nèi)部存儲(chǔ)的所有圖像中,哪些是當(dāng)前圖像,哪些是對應(yīng)圖像。步驟204,在預(yù)定大小的預(yù)讀緩沖區(qū)中設(shè)置與當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像分別對應(yīng)的對象;移動(dòng)終端可以設(shè)置有預(yù)定大小的預(yù)讀緩沖區(qū),該預(yù)定大小可以等于當(dāng)前圖像和對應(yīng)圖像所需要的緩沖存儲(chǔ)空間。本實(shí)施例以該預(yù)定大小為9個(gè)圖像的存儲(chǔ)空間為例來舉例說明。具體地講,移動(dòng)終端中還可以包含有三種線程主線程、多個(gè)子線程和繪制線程。其中在確定當(dāng)前圖像和對應(yīng)圖像之后,主線程在預(yù)讀緩沖區(qū)中為當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像分別創(chuàng)建一個(gè)對象,該對象可以是Java編程語言中的對象。比如,在圖3A中,當(dāng)前圖像為圖像4、圖像5和圖像6,對應(yīng)圖像為圖像1、圖像2、圖像3、圖像7、圖像8和圖像9被確定之后,主線程可以在預(yù)讀緩沖區(qū)中為當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像分別創(chuàng)建一個(gè)對象。當(dāng)然,如果是圖3B所示的滑動(dòng)過程中,當(dāng)前圖像由圖像4、圖像5和圖像6變?yōu)閳D像7、圖像8和圖像9,對應(yīng)圖像變?yōu)閳D像4、圖像5、圖像6、圖像10、圖像11和圖像12被確定之后,主線程可以新增創(chuàng)建圖像10、圖像11和圖像12對應(yīng)的對象。每個(gè)對象包含有解析圖片需要的路徑和其他信息。每個(gè)對象在停止使用時(shí),會(huì)由Java中的GC (Garbage Collection,垃圾清理)來進(jìn)行釋放。步驟206,對當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,獲得當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù);在主線程為當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像創(chuàng)建對象之后,移動(dòng)終端可以設(shè)置多個(gè)子線程來對當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,以獲得當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù)。具體來講,移動(dòng)終端可以設(shè)置至少兩個(gè)子線程,比如9個(gè)或者5個(gè)子線程,各個(gè)子線程之間獨(dú)立且并行,然后每個(gè)子線程完成當(dāng)前圖像和對應(yīng)圖像中的一個(gè)圖像的處理工作,該處理工作包括對圖像進(jìn)行解壓和解碼,以獲得該圖像的位圖數(shù)據(jù)的過程。比如,移動(dòng)終端可以設(shè)置9個(gè)子線程,主線程創(chuàng)建后的9個(gè)對象將會(huì)分別分配給每個(gè)子線程,每個(gè)子線程根據(jù)對象中包含的信息完成當(dāng)前圖像和對應(yīng)圖像中的一個(gè)圖像的處理工作,最終同時(shí)完成當(dāng)前圖像和對應(yīng)圖像中共9個(gè)圖像的處理工作。又比如,移動(dòng)終端可以設(shè)置5個(gè)子線程,主線程創(chuàng)建后的9個(gè)對象將會(huì)依次分別分配給每個(gè)子線程,每個(gè)子線程完成當(dāng)前圖像和對應(yīng)圖像中的一個(gè)圖像的處理工作,每個(gè)子線程完成一個(gè)圖像的處理工作后,馬上根據(jù)主線程的分配開始下一個(gè)圖像的處理工作,最終完成當(dāng)前圖像和對應(yīng)圖像中共9個(gè)圖像的處理工作。步驟208,將當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù)分別載入對應(yīng)的對象中;在每個(gè)子線程完成一個(gè)圖像的處理工作后,子線程會(huì)馬上將該圖像的位圖數(shù)據(jù)交由主線程,然后由主線程將該圖像的位圖數(shù)據(jù)載入預(yù)讀緩沖區(qū)中與該圖像對應(yīng)的對象中。具體地講,主線程可以收到多個(gè)子線程上報(bào)的單個(gè)圖像的位圖數(shù)據(jù),然后按照預(yù)定順序,將每個(gè)圖像的位圖數(shù)據(jù)一一載入對應(yīng)的對象中。當(dāng)前圖像被載入預(yù)讀緩沖區(qū)后所占用的部分作為或者說稱之為顯示緩沖區(qū)。步驟210,將顯示緩沖區(qū)中的圖像進(jìn)行顯示。繪制線程不斷將顯示緩沖區(qū)中的位圖數(shù)據(jù)進(jìn)行繪制顯示。具體來講,主線程不停地將當(dāng)前圖像的位圖數(shù)據(jù)載入顯示緩沖區(qū)中包括的對象中;繪制線程不停地從顯示緩沖區(qū)所包括的對象中讀取當(dāng)前圖像的位圖數(shù)據(jù);然后,繪制線程根據(jù)當(dāng)前圖像的位圖數(shù)據(jù)顯示當(dāng)前圖像。如果繪制線程繪制到一個(gè)當(dāng)前圖像時(shí),該當(dāng)前圖像的位圖數(shù)據(jù)還未準(zhǔn)備好,或者未由主線程載入對應(yīng)的對象中,繪制線程將顯示一張黑色的馬賽克圖片。同時(shí),主線程也會(huì)不停地將對應(yīng)圖像的位圖數(shù)據(jù)載入預(yù)讀緩沖區(qū)中除顯示緩沖區(qū)之外的其它區(qū)域所包括的對象中,以便用戶滑動(dòng)屏幕導(dǎo)致對應(yīng)圖像成為新的當(dāng)前圖像時(shí),能夠快速顯示。綜上所述,本發(fā)明實(shí)施例提供的圖像顯示方法,通過將當(dāng)前圖像和對應(yīng)圖像動(dòng)態(tài)地載入預(yù)定大小的預(yù)讀緩沖區(qū)中,解決了已有方案對內(nèi)存需求較大的問題;達(dá)到了不論顯示多少張圖像,都使用預(yù)定大小的預(yù)讀緩沖區(qū)來快速顯示圖像的效果。申請人:在實(shí)現(xiàn)實(shí)施例二的過程中發(fā)現(xiàn),如果用戶在移動(dòng)終端的屏幕上進(jìn)行高速滑動(dòng),在相應(yīng)的圖像瀏覽過程中,主線程需要?jiǎng)?chuàng)建非常多的對象,同時(shí)GC需要釋放非常多的對象,而GC在運(yùn)行時(shí)也會(huì)造成圖像瀏覽過程的卡頓。為此,請繼續(xù)參考如下更為優(yōu)選地實(shí)施例實(shí)施例三請參考圖4,其示出了本發(fā)明實(shí)施例三提供的圖像顯示方法的方法流程圖。本實(shí)施例仍然以該圖像顯示方法應(yīng)用于諸如智能手機(jī)、平板電腦或者電子書閱讀器之類的移動(dòng)終端中來舉例說明。與上一實(shí)施例不同的是,本實(shí)施例中采用復(fù)用對象的方法來減少創(chuàng)建對象和釋放對象的過程。該圖像顯示方法,包括步驟402,根據(jù)當(dāng)前顯示區(qū)域確定當(dāng)前圖像和對應(yīng)圖像;本實(shí)施例中繼續(xù)將當(dāng)前顯示區(qū)域內(nèi)的圖像稱之為當(dāng)前圖像,比如圖3A中的圖像4、圖像5和圖像6 ;未能顯示的但位于當(dāng)前圖像之前和/或之后的圖像稱之為對應(yīng)圖像,比如圖3A中位于當(dāng)前圖像之前的圖像1、圖像2和圖像3,以及位于當(dāng)前圖像之后的圖像7、圖像8和圖像9均為對應(yīng)圖像。對應(yīng)圖像與當(dāng)前圖像之間的相對界線可以預(yù)先設(shè)定,本實(shí)施例中僅以當(dāng)前圖像之前一行和當(dāng)前圖像之后一行的圖像作為對應(yīng)圖像來舉例說明,具體實(shí)施例中可以不同。不論在靜止?fàn)顟B(tài),還是用戶高速拖動(dòng)狀態(tài),移動(dòng)終端根據(jù)當(dāng)前顯示區(qū)域都能夠確定內(nèi)部存儲(chǔ)的所有圖像中,哪些是當(dāng)前圖像,哪些是對應(yīng)圖像。步驟404,對于每個(gè)圖像,主線程計(jì)算該圖像的下標(biāo)i,下標(biāo)i=M0D (該圖像的圖像序號,N);移動(dòng)終端可以設(shè)置有預(yù)定大小的預(yù)讀緩沖區(qū),該預(yù)定大小可以等于當(dāng)前圖像和對應(yīng)圖像所需要的緩沖存儲(chǔ)空間。本實(shí)施例以該預(yù)定大小為9個(gè)圖像的存儲(chǔ)空間為例來舉例說明。具體地講,移動(dòng)終端中還可以包含有三種線程主線程、多個(gè)子線程和繪制線程。其中在確定當(dāng)前圖像和對應(yīng)圖像之后,主線程在預(yù)讀緩沖區(qū)中為當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像分別設(shè)置一個(gè)對象,該對象可以是Java編程語言中的對象。與上一實(shí)施例不同的是,主線程可以預(yù)先創(chuàng)建9個(gè)圖像的對象,或者,僅在第一次顯示當(dāng)前圖像和對應(yīng)圖像時(shí),創(chuàng)建9個(gè)圖像的對象,后續(xù)均采用復(fù)用已創(chuàng)建的對象的方法來實(shí)現(xiàn)為當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像設(shè)置一個(gè)對象的效果。對于已經(jīng)創(chuàng)建的每個(gè)對象的位置,都唯一對應(yīng)一個(gè)序號,比如,第0個(gè)對象、第I個(gè)
對象......第8個(gè)對象;而對于每個(gè)圖像,都對應(yīng)一個(gè)圖像序號,比如圖像4、圖像103、圖像
130等。通過計(jì)算每個(gè)圖像的圖像序號相對于9的余數(shù),可以使每個(gè)圖像對應(yīng)于一個(gè)對象。具體來講,設(shè)預(yù)讀緩沖區(qū)中包含預(yù)先創(chuàng)建的N個(gè)對象,對于每個(gè)圖像,主線程計(jì)算該圖像的下標(biāo)i,下標(biāo)i=M0D (該圖像的圖像序號,N);步驟406,將預(yù)讀緩沖區(qū)中的第i個(gè)對象復(fù)用為該圖像的對象;主線程將預(yù)讀緩沖區(qū)中的第i個(gè)對象復(fù)用為該圖像的對象,其中,i小于N, i為自然數(shù),N為正整數(shù)。比如,對于圖像103,主線程計(jì)算該圖像的下標(biāo)i=M0D (103,9)=4,則主線程將第4個(gè)對象復(fù)用為該圖像的對象。通過上述過程,可以保證創(chuàng)建的9個(gè)對象總是被循環(huán)使用,而無需頻繁創(chuàng)建和釋放對象。在對象被復(fù)用時(shí),主線程可以修改該對象包含的路徑和其它信息為最新對應(yīng)的圖像的路徑和其它信息。步驟408,對當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,獲得當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù);在主線程為當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像復(fù)用對象之后,移動(dòng)終端可以設(shè)置多個(gè)子線程來對當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,以獲得當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù)。具體來講,移動(dòng)終端可以設(shè)置至少兩個(gè)子線程,比如9個(gè)或者5個(gè)子線程,各個(gè)子線程之間獨(dú)立且并行,然后每個(gè)子線程完成當(dāng)前圖像和對應(yīng)圖像中的一個(gè)圖像的處理工作,該處理工作包括對圖像進(jìn)行解壓和解碼,以獲得該圖像的位圖數(shù)據(jù)的過程。比如,移動(dòng)終端可以設(shè)置9個(gè)子線程,主線程創(chuàng)建后的9個(gè)對象將會(huì)分別分配給每個(gè)子線程,每個(gè)子線程根據(jù)對象中包含的信息完成當(dāng)前圖像和對應(yīng)圖像中的一個(gè)圖像的處理工作,最終同時(shí)完成當(dāng)前圖像和對應(yīng)圖像中共9個(gè)圖像的處理工作。又比如,移動(dòng)終端可以設(shè)置5個(gè)子線程,主線程創(chuàng)建后的9個(gè)對象將會(huì)依次分別分配給每個(gè)子線程,每個(gè)子線程完成當(dāng)前圖像和對應(yīng)圖像中的一個(gè)圖像的處理工作,每個(gè)子線程完成一個(gè)圖像的處理工作后,馬上根據(jù)主線程的分配開始下一個(gè)圖像的處理工作,最終完成當(dāng)前圖像和對應(yīng)圖像中共9個(gè)圖像的處理工作。步驟410,將當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù)分別載入對應(yīng)的對象中;在每個(gè)子線程完成一個(gè)圖像的處理工作后,子線程會(huì)馬上將該圖像的位圖數(shù)據(jù)交由主線程,然后由主線程將該圖像的位圖數(shù)據(jù)載入預(yù)讀緩沖區(qū)中與該圖像對應(yīng)的對象中。具體地講,主線程可以收到多個(gè)子線程上報(bào)的單個(gè)圖像的位圖數(shù)據(jù),然后按照預(yù)定順序,將每個(gè)圖像的位圖數(shù)據(jù)一一載入對應(yīng)的對象中。當(dāng)前圖像被載入預(yù)讀緩沖區(qū)后所占用的部分作為或者說稱之為顯示緩沖區(qū)。步驟412,將顯示緩沖區(qū)中的圖像進(jìn)行顯示。繪制線程不斷將顯示緩沖區(qū)中的位圖數(shù)據(jù)進(jìn)行繪制顯示。具體來講,主線程不停地將當(dāng)前圖像的位圖數(shù)據(jù)載入顯示緩沖區(qū)中包括的對象中;繪制線程不停地從顯示緩沖區(qū)所包括的對象中讀取當(dāng)前圖像的位圖數(shù)據(jù);然后,繪制線程根據(jù)當(dāng)前圖像的位圖數(shù)據(jù)顯示當(dāng)前圖像。如果繪制線程繪制到一個(gè)當(dāng)前圖像時(shí),該圖像的位圖數(shù)據(jù)還未準(zhǔn)備好,或者未由主線程載入對應(yīng)的對象中,繪制線程將顯示一張黑色的馬賽克圖片。同時(shí),主線程也會(huì)不停地將對應(yīng)圖像的位圖數(shù)據(jù)載入預(yù)讀緩沖區(qū)中除顯示緩沖區(qū)之外的其它區(qū)域所包括的對象中,以便用戶滑動(dòng)屏幕導(dǎo)致對應(yīng)圖像成為新的當(dāng)前圖像時(shí),能夠快速顯示。
綜上所述,本發(fā)明實(shí)施例提供的圖像顯示方法,通過將當(dāng)前圖像和對應(yīng)圖像動(dòng)態(tài)地載入預(yù)定大小的預(yù)讀緩沖區(qū)中,解決了已有方案對內(nèi)存需求較大的問題;達(dá)到了不論顯示多少張圖像,都使用預(yù)定大小的預(yù)讀緩沖區(qū)來快速顯示圖像的效果。另外,通過計(jì)算圖像的下標(biāo),并根據(jù)下標(biāo)來復(fù)用對象的方法,解決了上一實(shí)施例中需要頻繁創(chuàng)建和釋放對象的問題;達(dá)到了進(jìn)一步地減少卡頓,實(shí)現(xiàn)更快速、流暢地圖像顯示的效果。申請人:在實(shí)現(xiàn)實(shí)施例二和實(shí)施例三的過程中還發(fā)現(xiàn),如果用戶在移動(dòng)終端的屏幕上進(jìn)行高速滑動(dòng),在相應(yīng)的圖像瀏覽過程中,主線程在收到多個(gè)子線程上報(bào)的非常多個(gè)圖像的位圖數(shù)據(jù)之后,需要按照預(yù)定順序排隊(duì)將各個(gè)圖像的位圖數(shù)據(jù)載入預(yù)讀緩沖區(qū)中的對應(yīng)對象中,有可能會(huì)出現(xiàn)不能及時(shí)將圖像的位圖數(shù)據(jù)載入對應(yīng)對象中的情況發(fā)生,從而導(dǎo)致黑色馬賽克圖片的顯示。為此,請繼續(xù)參考如下更為優(yōu)選地實(shí)施例實(shí)施例四請參考圖5,其示出了本發(fā)明實(shí)施例四提供的圖像顯示方法的方法流程圖。本實(shí)施例仍然以該圖像顯示方法應(yīng)用于諸如智能手機(jī)、平板電腦或者電子書閱讀器之類的移動(dòng)終端中來舉例說明。與前兩個(gè)實(shí)施例不同的是,本實(shí)施例中采用子線程直接將圖像的位圖數(shù)據(jù)載入對應(yīng)的對象中。該圖像顯示方法,包括步驟502,根據(jù)當(dāng)前顯示區(qū)域確定當(dāng)前圖像和對應(yīng)圖像;本實(shí)施例中繼續(xù)將當(dāng)前顯示區(qū)域內(nèi)的圖像稱之為當(dāng)前圖像,比如圖3A中的圖像4、圖像5和圖像6 ;未能顯示的但位于當(dāng)前圖像之前和/或之后的圖像稱之為對應(yīng)圖像,比如圖3A中位于當(dāng)前圖像之前的圖像1、圖像2和圖像3,以及位于當(dāng)前圖像之后的圖像7、圖像8和圖像9均為對應(yīng)圖像。對應(yīng)圖像與當(dāng)前圖像之間的相對界線可以預(yù)先設(shè)定,本實(shí)施例中僅以當(dāng)前圖像之前一行和當(dāng)前圖像之后一行的圖像作為對應(yīng)圖像來舉例說明,具體實(shí)施例中可以不同。不論在靜止?fàn)顟B(tài),還是用戶高速拖動(dòng)狀態(tài),移動(dòng)終端根據(jù)當(dāng)前顯示區(qū)域都能夠確定內(nèi)部存儲(chǔ)的所有圖像中,哪些是當(dāng)前圖像,哪些是對應(yīng)圖像。步驟504,對于每個(gè)圖像,主線程計(jì)算該圖像的下標(biāo)i,下標(biāo)i=M0D (該圖像的圖像序號,N);移動(dòng)終端可以設(shè)置有預(yù)定大小的預(yù)讀緩沖區(qū),該預(yù)定大小可以等于當(dāng)前圖像和對應(yīng)圖像所需要的緩沖存儲(chǔ)空間。本實(shí)施例以該預(yù)定大小為9個(gè)圖像的存儲(chǔ)空間為例來舉例說明。具體地講,移動(dòng)終端中還可以包含有三種線程主線程、多個(gè)子線程和繪制線程。其中在確定當(dāng)前圖像和對應(yīng)圖像之后,主線程在預(yù)讀緩沖區(qū)中為當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像分別設(shè)置一個(gè)對象,該對象可以是Java編程語言中的對象。主線程可以預(yù)先創(chuàng)建9個(gè)圖像的對象,或者,僅在第一次顯示當(dāng)前圖像和對應(yīng)圖像時(shí),創(chuàng)建9個(gè)圖像的對象,后續(xù)均采用復(fù)用已創(chuàng)建的對象的方法來實(shí)現(xiàn)為當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像設(shè)置一個(gè)對象的效果。對于已經(jīng)創(chuàng)建的每個(gè)對象的位置,都唯一對應(yīng)一個(gè)序號,比如,第0個(gè)對象、第I個(gè)
對象......第8個(gè)對象;而對于每個(gè)圖像,都對應(yīng)一個(gè)圖像序號,比如圖像4、圖像103、圖像
130等。通過計(jì)算每個(gè)圖像的圖像序號相對于9的余數(shù),可以使每個(gè)圖像對應(yīng)于一個(gè)對象。具體來講,設(shè)預(yù)讀緩沖區(qū)中包含預(yù)先創(chuàng)建的N個(gè)對象,
對于每個(gè)圖像,主線程計(jì)算該圖像的下標(biāo)i,下標(biāo)i=M0D (該圖像的圖像序號,N);步驟506,將預(yù)讀緩沖區(qū)中的第i個(gè)對象復(fù)用為該圖像的對象;主線程將預(yù)讀緩沖區(qū)中的第i個(gè)對象復(fù)用為該圖像的對象,其中,i小于N, i為自然數(shù),N為正整數(shù)。比如,對于圖像103,主線程計(jì)算該圖像的下標(biāo)i=M0D (103,9)=4,則主線程將第4個(gè)對象復(fù)用為該圖像的對象。通過上述過程,可以保證創(chuàng)建的9個(gè)對象總是被循環(huán)使用,而無需頻繁創(chuàng)建和釋放對象。在對象被復(fù)用時(shí),主線程可以修改該對象包含的路徑和其它信息為最新對應(yīng)的圖像的路徑和其它信息。步驟508,對當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,獲得當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù);在主線程為當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像復(fù)用對象之后,移動(dòng)終端可以設(shè)置多個(gè)子線程來對當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,以獲得當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù)。具體來講,移動(dòng)終端可以設(shè)置至少兩個(gè)子線程,比如9個(gè)或者5個(gè)子線程,各個(gè)子線程之間獨(dú)立且并行,然后每個(gè)子線程完成當(dāng)前圖像和對應(yīng)圖像中的一個(gè)圖像的處理工作,該處理工作包括對圖像進(jìn)行解壓和解碼,以獲得該圖像的位圖數(shù)據(jù)的過程。比如,移動(dòng)終端可以設(shè)置9個(gè)子線程,主線程創(chuàng)建后的9個(gè)對象將會(huì)分別分配給每個(gè)子線程,每個(gè)子線程根據(jù)對象中包含的信息完成當(dāng)前圖像和對應(yīng)圖像中的一個(gè)圖像的處理工作,最終同時(shí)完成當(dāng)前圖像和對應(yīng)圖像中共9個(gè)圖像的處理工作。又比如,移動(dòng)終端可以設(shè)置5個(gè)子線程,主線程創(chuàng)建后的9個(gè)對象將會(huì)依次分別分配給每個(gè)子線程,每個(gè)子線程完成當(dāng)前圖像和對應(yīng)圖像中的一個(gè)圖像的處理工作,每個(gè)子線程完成一個(gè)圖像的處理工作后,馬上根據(jù)主線程的分配開始下一個(gè)圖像的處理工作,最終完成當(dāng)前圖像和對應(yīng)圖像中共9個(gè)圖像的處理工作。步驟510,子線程在獲得圖像的位圖數(shù)據(jù)之后,直接將該圖像的位圖數(shù)據(jù)載入對應(yīng)的對象中;與上一實(shí)施例不同的是,子線程在獲得圖像的位圖數(shù)據(jù)之后,直接將該圖像的位圖數(shù)據(jù)載入對應(yīng)的對象中。對于本實(shí)施例,具體來講子線程在獲得一個(gè)圖像的位圖數(shù)據(jù)之后,計(jì)算該圖像的下標(biāo)i,下標(biāo)i=M0D (該圖像的圖像序號,N);子線程將該圖像的位圖數(shù)據(jù)載入預(yù)讀緩沖區(qū)中的第i個(gè)對象中。由于處理各個(gè)圖像的子線程互相獨(dú)立并行,且各個(gè)圖像對應(yīng)的對象在預(yù)讀緩沖區(qū)中也互相獨(dú)立,所以該載入過程可以實(shí)現(xiàn)成為多個(gè)子線程并行載入的方式,相對于前述實(shí)施例中只有主線程進(jìn)行排隊(duì)載入的情況,大大提高了載入速度。當(dāng)前圖像被載入預(yù)讀緩沖區(qū)后所占用的部分作為或者說稱之為顯示緩沖區(qū)。步驟512,將顯示緩沖區(qū)中的圖像進(jìn)行顯示。繪制線程不斷將顯示緩沖區(qū)中的位圖數(shù)據(jù)進(jìn)行繪制顯示。具體來講,由于每個(gè)子線程將處理完畢后的一個(gè)圖像的位圖數(shù)據(jù)都直接載入對應(yīng)的對象中,當(dāng)存在多個(gè)子線程時(shí),各個(gè)子線程會(huì)不停地將當(dāng)前圖像的位圖數(shù)據(jù)載入顯示緩沖區(qū)中包括的對象中;繪制線程不停地從顯示緩沖區(qū)所包括的對象中讀取當(dāng)前圖像的位圖數(shù)據(jù);然后,繪制線程根據(jù)當(dāng)前圖像的位圖數(shù)據(jù)顯示當(dāng)前圖像。如果繪制線程繪制到一個(gè)當(dāng)前圖像時(shí),該圖像的位圖數(shù)據(jù)還未準(zhǔn)備好,或者未由子線程載入對應(yīng)的對象中,繪制線程將顯示一張黑色的馬賽克圖片。同時(shí),各個(gè)子線程也會(huì)不停地將對應(yīng)圖像的位圖數(shù)據(jù)載入預(yù)讀緩沖區(qū)中除顯示緩沖區(qū)之外的其它區(qū)域所包括的對象中,以便用戶滑動(dòng)屏幕導(dǎo)致對應(yīng)圖像成為新的當(dāng)前圖像時(shí),能夠快速顯示。綜上所述,本發(fā)明實(shí)施例提供的圖像顯示方法,通過將當(dāng)前圖像和對應(yīng)圖像動(dòng)態(tài)地載入預(yù)定大小的預(yù)讀緩沖區(qū)中,解決了已有方案對內(nèi)存需求較大的問題;達(dá)到了不論顯示多少張圖像,都使用預(yù)定大小的預(yù)讀緩沖區(qū)來快速顯示圖像的效果。另外,通過由子線程來直接、并行地將位圖數(shù)據(jù)載入預(yù)讀緩沖區(qū)中的對應(yīng)對象中,解決了前述實(shí)施例中主線程排隊(duì)載入時(shí)的效率低下問題,達(dá)到了可以由子線程快速載入位圖數(shù)據(jù),消除黑色馬賽克顯示的幾率,更好地實(shí)現(xiàn)快速、流暢地圖像顯示的效果。實(shí)施例五請參考圖6,其示出了本發(fā)明實(shí)施例五提供的圖像顯示裝置的結(jié)構(gòu)方框圖。該圖像顯示裝置可以實(shí)現(xiàn)成為諸如智能手機(jī)、平板電腦或者電子書閱讀器之類的移動(dòng)終端中的一部分。該圖像顯示裝置,包括數(shù)據(jù)載入模塊620和圖像顯示模塊640。數(shù)據(jù)載入模塊620,用于將當(dāng)前顯示區(qū)域?qū)?yīng)的當(dāng)前圖像和位于所述當(dāng)前圖像之前和/或之后的對應(yīng)圖像載入預(yù)定大小的預(yù)讀緩沖區(qū),所述當(dāng)前圖像載入所述預(yù)讀緩沖區(qū)后所占用的部分作為顯示緩沖區(qū);圖像顯示模塊640,用于將所述數(shù)據(jù)載入模塊640載入所述顯示緩沖區(qū)中的圖像進(jìn)行顯示。綜上所述,本發(fā)明實(shí)施例提供的圖像顯示裝置,通過將當(dāng)前圖像和對應(yīng)圖像動(dòng)態(tài)地載入預(yù)定大小的預(yù)讀緩沖區(qū)中,解決了已有方案對內(nèi)存需求較大的問題;達(dá)到了不論顯示多少張圖像,都使用預(yù)定大小的預(yù)讀緩沖區(qū)來快速顯示圖像的效果。實(shí)施例六請參考圖7,其示出了本發(fā)明實(shí)施例六提供的圖像顯示裝置的結(jié)構(gòu)方框圖。該圖像顯示裝置可以實(shí)現(xiàn)成為諸如智能手機(jī)、平板電腦或者電子書閱讀器之類的移動(dòng)終端中的一部分。該圖像顯示裝置,包括數(shù)據(jù)載入模塊620和圖像顯示模塊640。數(shù)據(jù)載入模塊620,用于將當(dāng)前顯示區(qū)域?qū)?yīng)的當(dāng)前圖像和位于所述當(dāng)前圖像之前和/或之后的對應(yīng)圖像載入預(yù)定大小的預(yù)讀緩沖區(qū),所述當(dāng)前圖像載入所述預(yù)讀緩沖區(qū)后所占用的部分作為顯示緩沖區(qū)。具體地講,所述數(shù)據(jù)載入模塊620,可以包括圖像確定單元622、對象設(shè)置單元624、圖像處理單元626和數(shù)據(jù)載入單元628 ;所述圖像確定單元622,用于根據(jù)所述當(dāng)前顯示區(qū)域確定所述當(dāng)前圖像和對應(yīng)圖像;所述對象設(shè)置單元624,用于在預(yù)定大小的所述預(yù)讀緩沖區(qū)中設(shè)置與所述圖像確定單元622確定的當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像分別對應(yīng)的對象;所述圖像處理單元626,用于對所述圖像確定單元622確定的當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,獲得所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù);
所述數(shù)據(jù)載入單元628,用于將所述圖像處理單元626得到的所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù)分別載入所述對象設(shè)置單元624設(shè)置的對應(yīng)的對象中。圖像顯示模塊640,用于將所述數(shù)據(jù)載入模塊640載入所述顯示緩沖區(qū)中的圖像進(jìn)行顯示。具體地講,所述圖像顯示模塊640,可以包括數(shù)據(jù)讀取單元642和圖像顯示單元644 ;所述數(shù)據(jù)讀取單元642,用于從所述顯示緩沖區(qū)所包括的對象中讀取所述當(dāng)前圖像的位圖數(shù)據(jù);所述圖像顯示單元644,用于根據(jù)所述數(shù)據(jù)讀取單元642讀取到的所述當(dāng)前圖像的位圖數(shù)據(jù)顯示所述當(dāng)前圖像。綜上所述,本發(fā)明實(shí)施例提供的圖像顯示裝置,通過將當(dāng)前圖像和對應(yīng)圖像動(dòng)態(tài)地載入預(yù)定大小的預(yù)讀緩沖區(qū)中,解決了已有方案對內(nèi)存需求較大的問題;達(dá)到了不論顯示多少張圖像,都使用預(yù)定大小的預(yù)讀緩沖區(qū)來快速顯示圖像的效果。實(shí)施例七請參考圖8,其示出了本發(fā)明實(shí)施例七提供的圖像顯示裝置的結(jié)構(gòu)方框圖。該圖像顯示裝置可以實(shí)現(xiàn)成為諸如智能手機(jī)、平板電腦或者電子書閱讀器之類的移動(dòng)終端中的一部分。該圖像顯示裝置,包括數(shù)據(jù)載入模塊620和圖像顯示模塊640。數(shù)據(jù)載入模塊620,用于將當(dāng)前顯示區(qū)域?qū)?yīng)的當(dāng)前圖像和位于所述當(dāng)前圖像之前和/或之后的對應(yīng)圖像載入預(yù)定大小的預(yù)讀緩沖區(qū),所述當(dāng)前圖像載入所述預(yù)讀緩沖區(qū)后所占用的部分作為顯示緩沖區(qū)。具體地講,所述數(shù)據(jù)載入模塊620,可以包括圖像確定單元622、對象設(shè)置單元624、圖像處理單元626和數(shù)據(jù)載入單元628 ;所述圖像確定單元622,用于根據(jù)所述當(dāng)前顯示區(qū)域確定所述當(dāng)前圖像和對應(yīng)圖像;所述對象設(shè)置單元624,用于在預(yù)定大小的所述預(yù)讀緩沖區(qū)中設(shè)置與所述圖像確定單元622確定的當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像分別對應(yīng)的對象;所述圖像處理單元626,用于對所述圖像確定單元622確定的當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,獲得所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù);所述數(shù)據(jù)載入單元628,用于將所述圖像處理單元626得到的所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù)分別載入所述對象設(shè)置單元624設(shè)置的對應(yīng)的對象中。更具體地講,所述預(yù)讀緩沖區(qū)中可以包含預(yù)先創(chuàng)建的N個(gè)對象,所述對象設(shè)置單元624,包括下標(biāo)計(jì)算子單元624a和對象復(fù)用子單元624b ;所述下標(biāo)計(jì)算子單元624a,用于對于每個(gè)圖像,計(jì)算所述圖像的下標(biāo)i,所述下標(biāo)i=M0D (所述圖像的圖像序號,N);所述對象復(fù)用子單元624b,用于將所述預(yù)讀緩沖區(qū)中的第i個(gè)對象復(fù)用為所述圖像的對象,其中,i小于N, i為自然數(shù),N為正整數(shù)。圖像顯示模塊640,用于將所述數(shù)據(jù)載入模塊640載入所述顯示緩沖區(qū)中的圖像進(jìn)行顯示。
具體地講,所述圖像顯示模塊640,可以包括數(shù)據(jù)讀取單元642和圖像顯示單元644 ;所述數(shù)據(jù)讀取單元642,用于從所述顯示緩沖區(qū)所包括的對象中讀取所述當(dāng)前圖像的位圖數(shù)據(jù);所述圖像顯示單元644,用于根據(jù)所述數(shù)據(jù)讀取單元642讀取到的所述當(dāng)前圖像的位圖數(shù)據(jù)顯示所述當(dāng)前圖像。綜上所述,本發(fā)明實(shí)施例提供的圖像顯示裝置,通過將當(dāng)前圖像和對應(yīng)圖像動(dòng)態(tài)地載入預(yù)定大小的預(yù)讀緩沖區(qū)中,解決了已有方案對內(nèi)存需求較大的問題;達(dá)到了不論顯示多少張圖像,都使用預(yù)定大小的預(yù)讀緩沖區(qū)來快速顯示圖像的效果。另外,通過計(jì)算圖像的下標(biāo),并根據(jù)下標(biāo)來復(fù)用對象的方法,解決了上一實(shí)施例中需要頻繁創(chuàng)建和釋放對象的問題;達(dá)到了進(jìn)一步地減少卡頓,實(shí)現(xiàn)更快速、流暢地圖像顯示的效果。實(shí)施例八請繼續(xù)參考圖8,其還示出了本發(fā)明實(shí)施例八提供的圖像顯示裝置的結(jié)構(gòu)方框圖。該圖像顯示裝置可以實(shí)現(xiàn)成為諸如智能手機(jī)、平板電腦或者電子書閱讀器之類的移動(dòng)終端中的一部分。該圖像顯示裝置,包括數(shù)據(jù)載入模塊620和圖像顯示模塊640。數(shù)據(jù)載入模塊620,用于將當(dāng)前顯示區(qū)域?qū)?yīng)的當(dāng)前圖像和位于所述當(dāng)前圖像之前和/或之后的對應(yīng)圖像載入預(yù)定大小的預(yù)讀緩沖區(qū),所述當(dāng)前圖像載入所述預(yù)讀緩沖區(qū)后所占用的部分作為顯示緩沖區(qū)。具體地講,所述數(shù)據(jù)載入模塊620,可以包括圖像確定單元622、對象設(shè)置單元624、圖像處理單元626和數(shù)據(jù)載入單元628 ;所述圖像確定單元622,用于根據(jù)所述當(dāng)前顯示區(qū)域確定所述當(dāng)前圖像和對應(yīng)圖像;所述對象設(shè)置單元624,用于在預(yù)定大小的所述預(yù)讀緩沖區(qū)中設(shè)置與所述圖像確定單元622確定的當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像分別對應(yīng)的對象;所述圖像處理單元626,用于對所述圖像確定單元622確定的當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,獲得所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù);所述數(shù)據(jù)載入單元628,用于將所述圖像處理單元626得到的所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù)分別載入所述對象設(shè)置單元624設(shè)置的對應(yīng)的對象中。更具體地講,所述圖像處理單元626,用于設(shè)置至少兩個(gè)子線程,各個(gè)子線程互相獨(dú)立且并行,每個(gè)子線程單獨(dú)完成所述當(dāng)前圖像和對應(yīng)圖像中的一個(gè)圖像的解壓和解碼,從而獲得所述圖像的位圖數(shù)據(jù);所述數(shù)據(jù)載入單元628包括所述子線程,用于在所述子線程獲得所述圖像的位圖數(shù)據(jù)之后,由所述子線程直接將所述圖像的位圖數(shù)據(jù)載入對應(yīng)的對象中。圖像顯示模塊640,用于將所述數(shù)據(jù)載入模塊640載入所述顯示緩沖區(qū)中的圖像進(jìn)行顯示。具體地講,所述圖像顯示模塊640,可以包括數(shù)據(jù)讀取單元642和圖像顯示單元644 ;所述數(shù)據(jù)讀取單元642,用于從所述顯示緩沖區(qū)所包括的對象中讀取所述當(dāng)前圖像的位圖數(shù)據(jù);
所述圖像顯示單元644,用于根據(jù)所述數(shù)據(jù)讀取單元642讀取到的所述當(dāng)前圖像的位圖數(shù)據(jù)顯示所述當(dāng)前圖像。更為優(yōu)選地是,若所述預(yù)讀緩沖區(qū)中包含預(yù)先創(chuàng)建的N個(gè)對象,所述對象設(shè)置單元624,包括下標(biāo)計(jì)算子單元624a和對象復(fù)用子單元624b ;所述下標(biāo)計(jì)算子單元624a,用于對于每個(gè)圖像,計(jì)算所述圖像的下標(biāo)i,所述下標(biāo)i=M0D (所述圖像的圖像序號,N);所述對象復(fù)用子單元624b,用于將所述預(yù)讀緩沖區(qū)中的第i個(gè)對象復(fù)用為所述圖像的對象,其中,i小于N, i為自然數(shù),N為正整數(shù)。則對應(yīng)地,所述數(shù)據(jù)載入單元628包括所述子線程,用于在所述子線程獲得所述圖像的位圖數(shù)據(jù)之后,計(jì)算所述圖像的下標(biāo)i,所述下標(biāo)i=M0D (所述圖像的圖像序號,N);由所述子線程將所述圖像的位圖數(shù)據(jù)載入所述預(yù)讀緩沖區(qū)中的第i個(gè)對象中。綜上所述,本發(fā)明實(shí)施例提供的圖像顯示裝置,通過將當(dāng)前圖像和對應(yīng)圖像動(dòng)態(tài)地載入預(yù)定大小的預(yù)讀緩沖區(qū)中,解決了已有方案對內(nèi)存需求較大的問題;達(dá)到了不論顯示多少張圖像,都使用預(yù)定大小的預(yù)讀緩沖區(qū)來快速顯示圖像的效果。另外,通過由子線程來直接、并行地將位圖數(shù)據(jù)載入預(yù)讀緩沖區(qū)中的對應(yīng)對象中,解決了前述實(shí)施例中主線程排隊(duì)載入時(shí)的效率低下問題,達(dá)到了可以由子線程快速載入位圖數(shù)據(jù),消除黑色馬賽克顯示的幾率,更好地實(shí)現(xiàn)快速、流暢地圖像顯示的效果。需要說明的是上述實(shí)施例提供的圖像顯示裝置在顯示多張圖像時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的圖像顯示裝置與圖像顯示方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過程詳見方法實(shí)施例,這里不再贅述。上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種圖像顯示方法,其特征在于,所述方法包括 將當(dāng)前顯示區(qū)域?qū)?yīng)的當(dāng)前圖像和位于所述當(dāng)前圖像之前和/或之后的對應(yīng)圖像載入預(yù)定大小的預(yù)讀緩沖區(qū),所述當(dāng)前圖像載入所述預(yù)讀緩沖區(qū)后所占用的部分作為顯示緩沖區(qū); 將所述顯示緩沖區(qū)中的圖像進(jìn)行顯示。
2.根據(jù)權(quán)利要求1所述的圖像顯示方法,其特征在于,所述將當(dāng)前顯示區(qū)域?qū)?yīng)的當(dāng)前圖像和位于所述當(dāng)前圖像之前和/或之后的對應(yīng)圖像載入預(yù)定大小的預(yù)讀緩沖區(qū),包括 根據(jù)所述當(dāng)前顯示區(qū)域確定所述當(dāng)前圖像和對應(yīng)圖像; 在預(yù)定大小的所述預(yù)讀緩沖區(qū)中設(shè)置與所述當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像分別對應(yīng)的對象; 對所述當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,獲得所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù); 將所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù)分別載入對應(yīng)的對象中; 所述將所述顯示緩沖區(qū)中的圖像進(jìn)行顯示,包括 從所述顯示緩沖區(qū)所包括的對象中讀取所述當(dāng)前圖像的位圖數(shù)據(jù); 根據(jù)所述當(dāng)前圖像的位圖數(shù)據(jù)顯示所述當(dāng)前圖像。
3.根據(jù)權(quán)利要求2所述的圖像顯示方法,其特征在于,所述預(yù)讀緩沖區(qū)中包含預(yù)先創(chuàng)建的N個(gè)對象, 所述在所述預(yù)讀緩沖區(qū)中設(shè)置與所述當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像分別對應(yīng)的對象,包括 對于每個(gè)圖像,計(jì)算所述圖像的下標(biāo)i,所述下標(biāo)i=MOD (所述圖像的圖像序號,N); 將所述預(yù)讀緩沖區(qū)中的第i個(gè)對象復(fù)用為所述圖像的對象, 其中,i小于N, i為自然數(shù),N為正整數(shù)。
4.根據(jù)權(quán)利要求2或3所述的圖像顯示方法,其特征在于,所述對所述當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,獲得所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù),包括 設(shè)置至少兩個(gè)子線程,各個(gè)子線程互相獨(dú)立且并行,每個(gè)子線程單獨(dú)完成所述當(dāng)前圖像和對應(yīng)圖像中的一個(gè)圖像的解壓和解碼,從而獲得所述圖像的位圖數(shù)據(jù); 所述將所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù)載入對應(yīng)的對象中,包括 所述子線程在獲得所述圖像的位圖數(shù)據(jù)之后,直接將所述圖像的位圖數(shù)據(jù)載入對應(yīng)的對象中。
5.根據(jù)權(quán)利要求4所述的圖像顯示方法,其特征在于,所述預(yù)讀緩沖區(qū)中包含預(yù)先創(chuàng)建的N個(gè)對象, 所述子線程在獲得所述圖像的位圖數(shù)據(jù)之后,直接將所述圖像的位圖數(shù)據(jù)載入對應(yīng)的對象中,包括 所述子線程在獲得所述圖像的位圖數(shù)據(jù)之后,計(jì)算所述圖像的下標(biāo)i,所述下標(biāo)i=MOD(所述圖像的圖像序號,N); 所述子線程將所述圖像的位圖數(shù)據(jù)載入所述預(yù)讀緩沖區(qū)中的第i個(gè)對象中。
6.一種圖像顯示裝置,其特征在于,所述裝置包括數(shù)據(jù)載入模塊,用于將當(dāng)前顯示區(qū)域?qū)?yīng)的當(dāng)前圖像和位于所述當(dāng)前圖像之前和/或之后的對應(yīng)圖像載入預(yù)定大小的預(yù)讀緩沖區(qū),所述當(dāng)前圖像載入所述預(yù)讀緩沖區(qū)后所占用的部分作為顯示緩沖區(qū); 圖像顯示模塊,用于將所述數(shù)據(jù)載入模塊載入所述顯示緩沖區(qū)中的圖像進(jìn)行顯示。
7.根據(jù)權(quán)利要求6所述的圖像顯示裝置,其特征在于,所述數(shù)據(jù)載入模塊,包括 圖像確定單元、對象設(shè)置單元、圖像處理單元和數(shù)據(jù)載入單元; 所述圖像確定單元,用于根據(jù)所述當(dāng)前顯示區(qū)域確定所述當(dāng)前圖像和對應(yīng)圖像; 所述對象設(shè)置單元,用于在預(yù)定大小的所述預(yù)讀緩沖區(qū)中設(shè)置與所述圖像確定單元確定的當(dāng)前圖像和對應(yīng)圖像中的每個(gè)圖像分別對應(yīng)的對象; 所述圖像處理單元,用于對所述圖像確定單元確定的當(dāng)前圖像和對應(yīng)圖像進(jìn)行解壓和解碼,獲得所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù); 所述數(shù)據(jù)載入單元,用于將所述圖像處理單元得到的所述當(dāng)前圖像和對應(yīng)圖像的位圖數(shù)據(jù)分別載入所述對象設(shè)置單元設(shè)置的對應(yīng)的對象中; 所述圖像顯示模塊,包括數(shù)據(jù)讀取單元和圖像顯示單元; 所述數(shù)據(jù)讀取單元,用于從所述顯示緩沖區(qū)所包括的對象中讀取所述當(dāng)前圖像的位圖數(shù)據(jù); 所述圖像顯示單元,用于根據(jù)所述數(shù)據(jù)讀取單元讀取到的所述當(dāng)前圖像的位圖數(shù)據(jù)顯示所述當(dāng)前圖像。
8.根據(jù)權(quán)利要求7所述的圖像顯示裝置,其特征在于,所述預(yù)讀緩沖區(qū)中包含預(yù)先創(chuàng)建的N個(gè)對象, 所述對象設(shè)置單元,包括 下標(biāo)計(jì)算子單元和對象復(fù)用子單元; 所述下標(biāo)計(jì)算子單元,用于對于每個(gè)圖像,計(jì)算所述圖像的下標(biāo)i,所述下標(biāo)i=MOD (所述圖像的圖像序號,N); 所述對象復(fù)用子單元,用于將所述預(yù)讀緩沖區(qū)中的第i個(gè)對象復(fù)用為所述圖像的對象,其中,i小于N, i為自然數(shù),N為正整數(shù)。
9.根據(jù)權(quán)利要求7或8所述的圖像顯示裝置,其特征在于,所述圖像處理單元,用于設(shè)置至少兩個(gè)子線程,各個(gè)子線程互相獨(dú)立且并行,每個(gè)子線程單獨(dú)完成所述當(dāng)前圖像和對應(yīng)圖像中的一個(gè)圖像的解壓和解碼,從而獲得所述圖像的位圖數(shù)據(jù); 所述數(shù)據(jù)載入單元包括所述子線程,用于在所述子線程獲得所述圖像的位圖數(shù)據(jù)之后,由所述子線程直接將所述圖像的位圖數(shù)據(jù)載入對應(yīng)的對象中。
10.根據(jù)權(quán)利要求9所述的圖像顯示裝置,其特征在于,所述預(yù)讀緩沖區(qū)中包含預(yù)先創(chuàng)建的N個(gè)對象, 所述數(shù)據(jù)載入單元包括所述子線程,用于在所述子線程獲得所述圖像的位圖數(shù)據(jù)之后,計(jì)算所述圖像的下標(biāo)i,所述下標(biāo)i=MOD (所述圖像的圖像序號,N);由所述子線程將所述圖像的位圖數(shù)據(jù)載入所述預(yù)讀緩沖區(qū)中的第i個(gè)對象中。
11.一種移動(dòng)終端,其特征在于,所述如權(quán)利要求5至10任一所述的圖像顯示裝置。
全文摘要
本發(fā)明公開了一種圖像顯示方法、裝置及移動(dòng)終端,屬于圖形圖像處理領(lǐng)域。所述方法包括將當(dāng)前顯示區(qū)域?qū)?yīng)的當(dāng)前圖像和位于所述當(dāng)前圖像之前和/或之后的對應(yīng)圖像載入預(yù)定大小的預(yù)讀緩沖區(qū),所述當(dāng)前圖像載入所述預(yù)讀緩沖區(qū)后所占用的部分作為顯示緩沖區(qū);將所述顯示緩沖區(qū)中的圖像進(jìn)行顯示。本發(fā)明通過將當(dāng)前圖像和對應(yīng)圖像動(dòng)態(tài)地載入預(yù)定大小的預(yù)讀緩沖區(qū)中,解決了已有方案對內(nèi)存需求較大的問題;達(dá)到了不論顯示多少張圖像,都使用預(yù)定大小的預(yù)讀緩沖區(qū)來快速顯示圖像的效果。
文檔編號G06F3/14GK103034467SQ20121051974
公開日2013年4月10日 申請日期2012年12月6日 優(yōu)先權(quán)日2012年12月6日
發(fā)明者劉偉 申請人:北京小米科技有限責(zé)任公司