亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

圖片縮略圖顯示方法和裝置制造方法

文檔序號:6504708閱讀:209來源:國知局
圖片縮略圖顯示方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種圖片縮略圖顯示方法,所述方法包括:第一線程啟動第二線程和第三線程;所述第二線程終端進(jìn)行圖片文件掃描,得到待顯示的圖片文件列表,并發(fā)送至所述第一線程;所述第一線程根據(jù)所述待顯示的圖片文件列表,向所述第三線程請求加載圖片縮略圖;所述第三線程獲取各待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并將所述縮略圖數(shù)據(jù)返回至所述第一線程;所述第一線程根據(jù)所述縮略圖數(shù)據(jù),通過視圖顯示控件顯示所述待顯示的圖片文件對應(yīng)的縮略圖。實(shí)施本發(fā)明實(shí)施例,能夠?qū)D片縮略圖進(jìn)行異步加載處理,減少卡頓現(xiàn)象,提高圖片縮略圖顯示的流暢性。此外,還提供了一種圖片縮略圖顯示裝置。
【專利說明】圖片縮略圖顯示方法和裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)【技術(shù)領(lǐng)域】,特別是涉及一種圖片縮略圖顯示方法和裝置。

【背景技術(shù)】
[0002]在現(xiàn)有的操作系統(tǒng)平臺中,尤其是移動設(shè)備操作系統(tǒng)平臺中,由于用戶瀏覽文件或訪問網(wǎng)頁,系統(tǒng)平臺會經(jīng)常需要顯示圖片縮略圖。
[0003]現(xiàn)有技術(shù)中,顯示圖片縮略圖,往往是通過結(jié)合視圖顯示控件,在主線程中完成圖片縮略圖的加載、解碼和顯示。例如在Android (安卓,一種基于Linux的自由及開放源代碼的操作系統(tǒng))平臺中,是通過結(jié)合GridView (網(wǎng)格視圖)控件或者ListView (列表視圖)控件,在主線程進(jìn)行縮略圖的加載、解碼和顯示。
[0004]發(fā)明人在研究中發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下技術(shù)問題:
[0005]由于圖片處理具有數(shù)據(jù)量大、計算量大的特點(diǎn),在主線程下直接進(jìn)行處理,很容易出現(xiàn)卡頓的情況,尤其在Android平臺中,SD卡(Secure Digital Memory Card,安全數(shù)碼卡)的訪問比較慢,在圖片數(shù)量較多的情況下,甚至?xí)霈F(xiàn)ANR (Applicat1n NotResponding,應(yīng)用程序未響應(yīng))現(xiàn)象,因此圖片縮略圖顯示的流暢性比較低。


【發(fā)明內(nèi)容】

[0006]基于此,有必要針對上述技術(shù)問題,提供一種圖片縮略圖顯示方法和裝置,能夠?qū)D片縮略圖進(jìn)行異步加載處理,減少卡頓現(xiàn)象,提聞圖片縮略圖顯不的流暢性。
[0007]一種圖片縮略圖顯示方法,包括:
[0008]第一線程啟動第二線程和第三線程;
[0009]所述第二線程對終端進(jìn)行圖片文件掃描,得到待顯示的圖片文件列表,并發(fā)送至所述第一線程;
[0010]所述第一線程根據(jù)所述待顯示的圖片文件列表,向所述第三線程請求加載圖片縮略圖;
[0011]所述第三線程獲取各待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并將所述縮略圖數(shù)據(jù)返回至所述第一線程;
[0012]所述第一線程根據(jù)所述縮略圖數(shù)據(jù),通過視圖顯示控件顯示所述待顯示的圖片文件對應(yīng)的縮略圖。
[0013]一種圖片縮略圖顯示裝置,包括:
[0014]第一線程,用于啟動第二線程和第三線程;
[0015]所述第二線程用于對終端進(jìn)行圖片文件掃描,得到待顯示的圖片文件列表,并發(fā)送至所述第一線程;
[0016]所述第一線程還用于根據(jù)所述待顯示的圖片文件列表,向所述第三線程請求加載圖片縮略圖;
[0017]所述第三線程用于獲取各待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并將所述縮略圖數(shù)據(jù)返回至所述第一線程;
[0018]所述第一線程還用于根據(jù)所述縮略圖數(shù)據(jù),通過視圖顯示控件顯示所述待顯示的圖片文件對應(yīng)的縮略圖。
[0019]上述圖片縮略圖顯示方法和裝置,通過第二線程進(jìn)行文件掃描,得到待顯示的圖片文件列表,第一線程根據(jù)第二線程掃描到的待顯示的圖片文件列表,向第三線程請求加載圖片縮略圖,再由第三線程進(jìn)行圖片縮略圖加載處理,得到縮略圖數(shù)據(jù)并返回第一線程,最終由第一線程顯示縮略圖,相比于現(xiàn)有技術(shù),由于不同的線程來處理文件的掃描、圖片縮略圖的加載和縮略圖的顯示,使得掃描存儲器上圖片文件這一計算量較大的工作和加載圖片縮略圖這一計算量較大的工作分別交由了一個獨(dú)立的線程來完成,降低了第一線程的工作負(fù)擔(dān),實(shí)現(xiàn)了對圖片縮略圖進(jìn)行異步加載處理,減少了卡頓現(xiàn)象,提高圖片縮略圖顯示的流暢性。

【專利附圖】

【附圖說明】
[0020]圖1為一個實(shí)施例中的圖片縮略圖顯示方法的流程示意圖;
[0021]圖2為另一個實(shí)施例中的圖片縮略圖顯示方法的流程示意圖;
[0022]圖3為一個實(shí)施例中第三線程獲取待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù)的流程示意圖;
[0023]圖4為一個實(shí)施例中的圖片縮略圖顯示裝置的結(jié)構(gòu)框圖;
[0024]圖5為一個實(shí)施例中圖片縮略圖顯示裝置的工作時序圖;
[0025]圖6為一個實(shí)施例中的圖片縮略圖顯示終端的結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0026]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0027]參見圖1,在一個實(shí)施例中,提供了一種圖片縮略圖顯示方法,本方法以應(yīng)用在安裝有各種操作系統(tǒng)的終端中進(jìn)行舉例說明,這些終端包括但不限于臺式計算機(jī)、個人數(shù)字助理、智能手機(jī)、平板電腦和膝上型電腦等,包括:
[0028]步驟102,第一線程啟動第二線程和第三線程。
[0029]本實(shí)施例中,第一線程、第二線程和第三線程可以是多線程系統(tǒng)平臺下的三個獨(dú)立線程。其中,第一線程可以是用于實(shí)現(xiàn)用戶界面的線程,例如,⑶I (⑶I,Graphical UserInterface,圖形用戶界面)線程或UI (UI, User Interface,用戶界面)線程。以Android系統(tǒng)為例,第一線程則可以是主線程,主線程在啟動后先進(jìn)行初始化,包括用戶界面、視圖顯示控件、存儲文件列表、縮略圖緩存的初始化。之后,第一線程啟動第二線程和第三線程,第二線程用于文件掃描,第三線程用于加載圖片縮略圖。
[0030]步驟104,第二線程對終端進(jìn)行圖片文件掃描,得到待顯示的圖片文件列表,并發(fā)送至第一線程。
[0031]第二線程獲取終端中所要掃描的文件目錄,該目錄可以是第一線程指定的目錄。掃描時,第二線程根據(jù)文件的后綴識別圖片文件,將圖片文件記錄到中間變量表中,每隔一定時間將累積的中間變量表作為待顯示的圖片文件列表發(fā)給第一線程。
[0032]步驟106,第一線程根據(jù)待顯示的圖片文件列表,向第三線程請求加載圖片縮略圖。
[0033]第一線程獲取第二線程掃描到的待顯示的圖片文件列表后,可生成圖片縮略圖加載請求,并將該請求發(fā)送至第三線程。
[0034]步驟108,第三線程獲取各待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并將縮略圖數(shù)據(jù)返回至第一線程。
[0035]第三線程經(jīng)第一線程啟動后,處于空閑等待狀態(tài)。當(dāng)?shù)谌€程接收到第一線程發(fā)來的圖片縮略圖加載請求后,根據(jù)圖片縮略圖加載請求對各待顯示的圖片文件進(jìn)行圖片縮略圖加載處理,得到各圖片文件對應(yīng)的縮略圖數(shù)據(jù),并返回至第一線程。
[0036]步驟110,第一線程根據(jù)縮略圖數(shù)據(jù),通過視圖顯示控件顯示待顯示的圖片文件對應(yīng)的縮略圖。
[0037]第一線程獲取圖片文件對應(yīng)的縮略圖數(shù)據(jù),并通過用戶界面的視圖顯示控件顯示圖片縮略圖,從而更新用戶界面。以Android平臺為例,視圖顯示控件包括GridView(網(wǎng)格視圖)控件和ListView (列表視圖)控件。網(wǎng)格視圖控件和列表視圖控件所顯不的視圖包含多個子視圖,其中,網(wǎng)格視圖控件可以用于顯示桌面圖標(biāo)等網(wǎng)格型視圖,而列表視圖控件可以用于列表類型的視圖,如聯(lián)系人列表等。
[0038]本實(shí)施例中,通過第二線程進(jìn)行文件掃描,得到待顯示的圖片文件列表,第一線程根據(jù)第二線程掃描到的待顯示的圖片文件列表,向第三線程請求加載圖片縮略圖,再由第三線程加載圖片縮略圖,得到縮略圖數(shù)據(jù)并返回第一線程,最終由第一線程顯示縮略圖,相比于現(xiàn)有技術(shù),由于不同的線程來處理文件的掃描、圖片縮略圖的加載和縮略圖的顯示,使得掃描存儲器上圖片文件這一計算量較大的工作和加載圖片縮略圖這一計算量較大的工作分別交由了一個獨(dú)立的線程來完成,降低了第一線程的工作負(fù)擔(dān),實(shí)現(xiàn)了對圖片縮略圖進(jìn)行異步加載處理,減少了卡頓現(xiàn)象,提高圖片縮略圖顯示的流暢性。
[0039]如圖2所示,在另一個實(shí)施例中,一種圖片縮略圖顯示方法,包括:
[0040]步驟202,第一線程啟動第二線程和第三線程。
[0041]在一個實(shí)施例中,第一線程在啟動第二線程和第三線程之前,可進(jìn)行初始化,包括初始化用戶界面、視圖顯示控件、存儲文件列表和縮略圖緩存等。其中,存儲文件列表中每一項為文件項,其包含一個用來唯一標(biāo)識文件項的索引值,縮略圖緩存中緩存了縮略圖數(shù)據(jù),其中,縮略圖數(shù)據(jù)是以鍵值對的形式進(jìn)行存儲,每一個縮略圖數(shù)據(jù)對應(yīng)了一個索引值,該索引值即為用來唯一標(biāo)識文件項的索引值,根據(jù)該索引值即可得到對應(yīng)的縮略圖數(shù)據(jù)。縮略圖數(shù)據(jù)可以是圖片的縮略圖進(jìn)行解碼后的位圖數(shù)據(jù),也可以是用來表示位圖的數(shù)據(jù)結(jié)構(gòu)。
[0042]以本實(shí)施例所提供的方法應(yīng)用安裝了 Android系統(tǒng)的移動終端為例,第一線程可以是Android系統(tǒng)中的主線程,存儲文件列表(FileList)中每一項為文件項(FileItem項),包含一個唯一標(biāo)識該文件項的索引值(Key值)。在Android系統(tǒng)中,縮略圖緩存以CacheMap〈Key,Value〉的數(shù)據(jù)結(jié)構(gòu)存儲數(shù)據(jù),其中的Key值對應(yīng)于圖片文件的文件項中索引值;CacheMap〈Key,Value〉中的值Value為圖片文件對應(yīng)的縮略圖數(shù)據(jù),包括類似位圖(Bitmap)或BitmapDrawable (Android系統(tǒng)上一種表示位圖的數(shù)據(jù)結(jié)構(gòu))一類的數(shù)據(jù)結(jié)構(gòu)。初始化之后,主線程啟動第二線程和第三線程,第二線程用于文件掃描,第三線程用于加載圖片縮略圖。
[0043]步驟204,第二線程對終端進(jìn)行圖片文件掃描,得到待顯示的圖片文件列表,并發(fā)送至第一線程。
[0044]第二線程根據(jù)第一線程指定的文件目錄對終端進(jìn)行圖片文件掃描。掃描時,第二線程根據(jù)文件的后綴識別圖片文件,將圖片文件記錄到中間變量表中,每隔一定時間(例如300ms)將累積的中間變量表作為待顯示的圖片文件列表,通過第一線程的消息處理函數(shù)發(fā)給第一線程,例如在Android系統(tǒng)中,消息處理函數(shù)可以是主線程的某一 Handler的消息處理函數(shù),Handler:一種運(yùn)行在Android系統(tǒng)中,能夠?qū)€程里的消息循環(huán)進(jìn)行消息處理的一種對象,它通過消息對象(Message對象)來傳遞消息。
[0045]步驟206,第一線程檢測縮略圖緩存中是否包含待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù)。若是,執(zhí)行步驟208,否則執(zhí)行步驟210。
[0046]第一線程提取第二線程掃描到的待顯示的圖片文件列表,將圖片文件列表更新到存儲文件列表中。通過網(wǎng)格視圖控件或列表視圖控件的適配器(Adapter)的通知數(shù)據(jù)變化函數(shù)(在Android系統(tǒng)中,該函數(shù)為notifyDataChange函數(shù))告知用戶界面底層數(shù)據(jù)發(fā)生了變化,需要更新顯示用戶界面。第一線程通過適配器依次通過獲取視圖函數(shù)(例如在Android系統(tǒng)中,該函數(shù)為getview函數(shù))獲取網(wǎng)格視圖控件或列表視圖控件所要顯示每個子視圖對應(yīng)的視圖項(Viewltem)和文件項中的索引值。例如在Android系統(tǒng)中,通過視圖項在存儲文件列表(FileList)中的下標(biāo)(posit1n),通過該下標(biāo),從存儲文件列表中找到對應(yīng)的文件項,進(jìn)而獲取到文件項對應(yīng)的索引值(Key值)。視圖項包括縮略圖數(shù)據(jù)和視圖顯示控件創(chuàng)建的其它視圖元素,如邊框、按鈕等。第一線程根據(jù)索引值檢索縮略圖緩存,若能檢索到對應(yīng)的索引值,意味著圖片的縮略圖數(shù)據(jù)已經(jīng)存在縮略圖緩存中,執(zhí)行步驟208。若檢索不到對應(yīng)的索引值,意味著圖片的縮略圖數(shù)據(jù)沒有存于縮略圖緩存中,執(zhí)行步驟210。
[0047]步驟208,第一線程從縮略圖緩存中獲取待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并根據(jù)縮略圖數(shù)據(jù),通過視圖顯示控件顯示縮略圖。
[0048]第一線程獲取縮略圖數(shù)據(jù),結(jié)合視圖顯示控件創(chuàng)建的其它視圖元素,作為圖片文件對應(yīng)的視圖項。適配器(Adapter)通過獲取視圖函數(shù)獲得該視圖項,更新到網(wǎng)格視圖控件或列表視圖控件所要顯示的對應(yīng)子視圖中,從而顯示了圖片縮略圖。
[0049]步驟210,第一線程根據(jù)待顯示的圖片文件列表,向第三線程請求加載圖片縮略圖。
[0050]第一線程沒有在縮略圖緩存中檢索到圖片文件的縮略圖數(shù)據(jù)后,需要請求第三線程加載圖片縮略圖加載,以獲取圖片文件對應(yīng)的縮略圖數(shù)據(jù)。第一線程構(gòu)造一個任務(wù)模型(如Android系統(tǒng)中的ThumbLoadTask模型)作為圖片縮略圖加載請求,該任務(wù)模型包含了要進(jìn)行圖片縮略圖加載處理的圖片文件的文件項。同時,主線程通過視圖顯示控件的標(biāo)簽設(shè)置函數(shù)(如Android系統(tǒng)中的SetViewByTag函數(shù))為圖片文件的視圖項設(shè)置一個唯一的標(biāo)簽,該標(biāo)簽可以但不限于是圖片文件文件項中的索引值,用于將后續(xù)第三線程返回的縮略圖數(shù)據(jù)與視圖項相對應(yīng)。
[0051]步驟212,第三線程獲取待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并將所述縮略圖數(shù)據(jù)返回至所述第一線程。
[0052]第三線程經(jīng)第一線程啟動后,處于空閑等待狀態(tài)。當(dāng)?shù)谌€程接收到第一線程發(fā)來的圖片縮略圖加載請求后,根據(jù)圖片縮略圖加載請求對需要進(jìn)行縮略圖加載處理的圖片文件進(jìn)行圖片縮略圖加載處理,得到該圖片文件對應(yīng)的縮略圖數(shù)據(jù)。第三線程再通過第一線程的消息處理函數(shù),將圖片文件的縮略圖數(shù)據(jù)、索引值以及文件項發(fā)送給第一線程。
[0053]步驟214,第一線程根據(jù)縮略圖數(shù)據(jù),通過視圖顯示控件顯示待顯示的圖片文件對應(yīng)的縮略圖。
[0054]在一個實(shí)施例中,第一線程從第三線程返回的消息中,提取圖片文件對應(yīng)的文件項、索引值和縮略圖數(shù)據(jù)后,第一線程還可以將縮略圖數(shù)據(jù)存儲至縮略圖緩存中,例如在Android系統(tǒng)中,第一線程將縮略圖存儲至縮略圖緩存中,相應(yīng)更新CacheMap〈Key,Value〉數(shù)據(jù)結(jié)構(gòu)。
[0055]第一線程調(diào)用視圖顯示控件的通過標(biāo)簽查找視圖函數(shù)(例如,在Android系統(tǒng)中,該函數(shù)為網(wǎng)格視圖控件或列表視圖控件的findViewByTag函數(shù)),以圖片文件文件項的索引值為該函數(shù)的標(biāo)簽,找到縮略圖數(shù)據(jù)對應(yīng)的視圖項,之后視圖顯示控件將視圖項更新到對應(yīng)的子視圖中,從而顯不了圖片縮略圖。
[0056]在一個實(shí)施例中,第一線程還可以實(shí)時監(jiān)控視圖顯示控件的顯示區(qū)域和縮略圖緩存,若視圖顯示控件的顯示區(qū)域發(fā)生滾動時,縮略圖緩存中緩存有顯示區(qū)域外的圖片文件的縮略圖數(shù)據(jù),則第一線程刪除顯示區(qū)域外的圖片文件在縮略圖緩存中的縮略圖數(shù)據(jù),從而回收了部分緩存。
[0057]本實(shí)施例中,通過第一線程接收第二線程掃描到待顯示的圖片文件列表,判斷其中的圖片文件的縮略圖數(shù)據(jù)是否已經(jīng)存在緩存中,若已經(jīng)存在就直接調(diào)用視圖顯示控件進(jìn)行顯示,減少了第三線程進(jìn)行圖片縮略圖加載處理的工作量,進(jìn)一步提高了圖片縮略圖顯示的效率,并且第一線程還對視圖顯示控件的顯示區(qū)域和縮略圖緩存進(jìn)行監(jiān)控,當(dāng)顯示區(qū)域發(fā)生滾動,就回收顯示區(qū)域之外的圖片文件縮略圖數(shù)據(jù)所占用的緩存,大大減少了顯示圖片縮略圖處理過程中所占用的緩存。
[0058]參見圖3,在一個實(shí)施例中,第三線程獲取待顯示的圖片文件的縮略圖數(shù)據(jù),包括:
[0059]步驟302,第三線程接收到第一線程發(fā)送的加載圖片縮略圖請求。
[0060]步驟304,第三線程檢測是否存儲有待顯示的圖片文件對應(yīng)的縮略圖。若是,執(zhí)行步驟306,否則執(zhí)行步驟308。
[0061]步驟306,第三線程加載存儲的縮略圖,并對加載的縮略圖進(jìn)行解碼,得到待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù)。
[0062]如果圖片文件對應(yīng)的縮略圖已預(yù)先進(jìn)行過存儲,則第三線程直接加載縮略圖,并對加載的縮略圖進(jìn)行解碼,得到縮略圖數(shù)據(jù)。
[0063]步驟308,第三線程創(chuàng)建待顯示的圖片文件對應(yīng)的縮略圖,并存儲縮略圖,以及加載創(chuàng)建的縮略圖,并對加載的縮略圖進(jìn)行解碼,得到待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù)。
[0064]第三線程創(chuàng)建圖片文件對應(yīng)的縮略圖,并將縮略圖進(jìn)行存儲,例如在Android系統(tǒng)中,可以將縮略圖存于存儲卡中的指定文件中,以便后續(xù)第三線程加載該圖片文件的縮略圖時,直接讀取已經(jīng)存儲的縮略圖。之后,第三線程對創(chuàng)建的縮略圖進(jìn)行加載并進(jìn)行解碼,得到圖片文件對應(yīng)的縮略圖數(shù)據(jù)。
[0065]在本實(shí)施例中,第三線程對加載圖片縮略圖請求中的圖片文件的縮略圖進(jìn)行檢測,如果縮略圖不存在于系統(tǒng)的存儲空間內(nèi),則先進(jìn)行縮略圖的創(chuàng)建和存儲,而如果檢測到縮略圖已經(jīng)存在于存儲空間中,則直接對已存在的縮略圖進(jìn)行處理,相比于現(xiàn)有技術(shù)需要每次都創(chuàng)建臨時存放的圖片文件對應(yīng)的縮略圖,再進(jìn)行處理,提高了第三線程進(jìn)行圖片縮略圖加載處理的效率。
[0066]參見圖4,在一個實(shí)施例中,提供了一種圖片縮略圖顯示裝置,包括:
[0067]第一線程402,用于啟動第二線程404和第三線程406。
[0068]第二線程404,用于對終端進(jìn)行圖片文件掃描,得到待顯示的圖片文件列表,并發(fā)送至第一線程402。
[0069]本實(shí)施例中,第一線程402還用于根據(jù)待顯示的圖片文件列表,向第三線程406請求加載圖片縮略圖。
[0070]第三線程406,用于獲取各待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并將縮略圖數(shù)據(jù)返回至第一線程402。
[0071]本實(shí)施例中,第一線程402還用于根據(jù)縮略圖數(shù)據(jù),通過視圖顯示控件顯示待顯示的圖片文件對應(yīng)的縮略圖。
[0072]在一個實(shí)施例中,第一線程402還用于檢測縮略圖緩存中是否包含待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),若是,則從縮略圖緩存中獲取待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并根據(jù)縮略圖數(shù)據(jù),通過視圖顯示控件顯示縮略圖;否則根據(jù)待顯示的圖片文件列表,向第三線程406請求加載圖片縮略圖。
[0073]在一個實(shí)施例中,第一線程402用于在接收到縮略圖數(shù)據(jù)后將縮略圖數(shù)據(jù)存儲至縮略圖緩存中。
[0074]在一個實(shí)施例中,第三線程406用于檢測是否存儲有待顯示的圖片文件對應(yīng)的縮略圖,若是,則加載存儲的縮略圖,并對加載的縮略圖進(jìn)行解碼,得到待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù);若否,則創(chuàng)建待顯示的圖片文件對應(yīng)的縮略圖,并存儲縮略圖,以及加載創(chuàng)建的縮略圖,對加載的縮略圖進(jìn)行解碼,得到待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù)。
[0075]在一個實(shí)施例中,第一線程402還用于監(jiān)控視圖顯示控件的顯示區(qū)域和縮略圖緩存,若縮略圖緩存中緩存有顯示區(qū)域外的圖片文件的縮略圖數(shù)據(jù),則刪除顯示區(qū)域外的圖片文件在縮略圖緩存中的縮略圖數(shù)據(jù),從而回收了部分緩存。
[0076]圖5示出了第一線程402、第二線程404和第三線程406之間的交互過程,具體包括:
[0077](I)第一線程404初始化。具體包括:
[0078]第一線程在啟動后先進(jìn)行初始化,包括用戶界面、視圖顯示控件、存儲文件列表、縮略圖緩存的初始化。
[0079]第一線程啟動第二線程和第三線程。
[0080]第一線程啟動第二線程和第三線程,第二線程用于文件掃描,第三線程用于加載圖片縮略圖。
[0081](2)掃描。具體的,第二線程進(jìn)行圖片文件掃描,得到待顯示的圖片文件列表,并發(fā)送至第一線程。
[0082]第二線程獲取所要掃描的文件目錄,該目錄可以是第一線程指定。掃描時,第二線程根據(jù)文件的后綴識別圖片文件,將圖片文件記錄到中間變量表中,每隔一定時間將累積的中間變量表作為待顯示的圖片文件列表發(fā)給第一線程。
[0083](3)請求加載。包括:第一線程根據(jù)待顯示的圖片文件列表,向第三線程請求加載圖片縮略圖。
[0084]第一線程獲取第二線程掃描到的待顯示的圖片文件列表后,可生成圖片縮略圖加載請求,并將該請求發(fā)送至第三線程。
[0085](4)加載圖片縮略圖。具體包括:
[0086]第三線程經(jīng)第一線程啟動后,處于空閑等待狀態(tài)。當(dāng)?shù)谌€程接收到第一線程發(fā)來的圖片縮略圖加載請求后,根據(jù)圖片縮略圖加載請求對待顯示的圖片文件進(jìn)行圖片縮略圖加載處理,得到圖片文件對應(yīng)的縮略圖數(shù)據(jù),并返回至第一線程。
[0087](5)顯示圖片縮略圖。
[0088]第一線程獲取圖片文件對應(yīng)的縮略圖數(shù)據(jù),并通過用戶界面的視圖顯示控件顯示圖片縮略圖,從而更新用戶界面。
[0089]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機(jī)可讀取存儲介質(zhì)中,如本發(fā)明實(shí)施例中終端的存儲介質(zhì)中,該程序由終端中的至少一個處理器執(zhí)行,以實(shí)現(xiàn)包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機(jī)存儲記憶體(Random Access Memory, RAM)等。
[0090]本發(fā)明實(shí)施例還提供了一種圖片縮略圖顯示終端,如圖5所示,為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,具體技術(shù)細(xì)節(jié)未揭示的,請參照本發(fā)明實(shí)施例方法部分。該終端可以為包括手機(jī)、平板電腦、PDA (Personal Digital Assistant,個人數(shù)字助理)、P0S (Point of Sales,銷售終端)、車載電腦等任意終端設(shè)備,以終端為手機(jī)為例:
[0091]圖5示出的是與本發(fā)明實(shí)施例提供的終端相關(guān)的手機(jī)的部分結(jié)構(gòu)的框圖。參考圖5,手機(jī)包括:射頻(Rad1 Frequency, RF)電路1110、存儲器1120、輸入單元1130、顯示單元1140、傳感器1150、音頻電路1160、無線通信模塊1170、處理器1180、以及電源1190等部件,其中無線通信模塊1170可以但不限于包括藍(lán)牙(Bluetooth)模塊、無線保真(wirelessfidelity, WiFi)模塊、紅外通信模塊等。本領(lǐng)域技術(shù)人員可以理解,圖5中示出的手機(jī)結(jié)構(gòu)并不構(gòu)成對手機(jī)的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
[0092]下面結(jié)合圖5對手機(jī)的各個構(gòu)成部件進(jìn)行具體的介紹:
[0093]RF電路1110可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,特別地,將基站的下行信息接收后,給處理器1180處理;另外,將設(shè)計上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路包括但不限于天線、至少一個放大器、收發(fā)信機(jī)、耦合器、低噪聲放大器(LowNoise Amplifier, LNA)、雙工器等。此外,RF電路110還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。上述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于全球移動通訊系統(tǒng)(Global System of Mobile communicat1n, GSM)、通用分組無線服務(wù)(GeneralPacket Rad1 Service, GPRS)、碼分多址(Code Divis1n Multiple Access, CDMA)、寬帶碼分多址(Wideband Code Divis1n Multiple Access, WCDMA)、長期演進(jìn)(Long TermEvolut1n, LTE))、電子郵件、短消息服務(wù)(Short Messaging Service, SMS)等。
[0094]存儲器1120可用于存儲軟件程序以及模塊,處理器1180通過運(yùn)行存儲在存儲器1120的軟件程序以及模塊,從而執(zhí)行手機(jī)的各種功能應(yīng)用以及數(shù)據(jù)處理。存儲器1120可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)手機(jī)的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器1120可以包括高速隨機(jī)存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。
[0095]輸入單元1130可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與手機(jī)1100的用戶設(shè)置以及功能控制有關(guān)的鍵信號輸入。具體地,輸入單元1130可包括觸控面板1131以及其他輸入設(shè)備1132。觸控面板1131,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板1131上或在觸控面板1131附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動相應(yīng)的連接裝置??蛇x的,觸控面板1131可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給處理器1180,并能接收處理器1180發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實(shí)現(xiàn)觸控面板1131。除了觸控面板1131,輸入單元1130還可以包括其他輸入設(shè)備1132。具體地,其他輸入設(shè)備1132可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。
[0096]顯示單元1140可用于顯示由用戶輸入的信息或提供給用戶的信息以及手機(jī)的各種菜單。顯示單元1140可包括顯示面板1141,可選的,可以采用液晶顯示器(LiquidCrystal Display, LCD)、有機(jī)發(fā)光二極管(Organic Light-Emitting D1de, 0LED)等形式來配置顯示面板1141。進(jìn)一步的,觸控面板1131可覆蓋顯示面板1141,當(dāng)觸控面板1131檢測到在其上或附近的觸摸操作后,傳送給處理器1180以確定觸摸事件的類型,隨后處理器1180根據(jù)觸摸事件的類型在顯示面板1141上提供相應(yīng)的視覺輸出。雖然在圖5中,觸控面板1131與顯示面板1141是作為兩個獨(dú)立的部件來實(shí)現(xiàn)手機(jī)的輸入和輸入功能,但是在某些實(shí)施例中,可以將觸控面板1131與顯示面板1141集成而實(shí)現(xiàn)手機(jī)的輸入和輸出功倉泛。
[0097]手機(jī)1100還可包括至少一種傳感器1150,比如光傳感器、運(yùn)動傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板1141的亮度,接近傳感器可在手機(jī)移動到耳邊時,關(guān)閉顯示面板1141和/或背光。作為運(yùn)動傳感器的一種,加速計傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別手機(jī)姿態(tài)的應(yīng)用匕如橫豎屏切換、相關(guān)游戲、磁力計姿態(tài)校準(zhǔn))、振動識別相關(guān)功能(比如計步器、敲擊)等;至于手機(jī)還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
[0098]音頻電路1160、揚(yáng)聲器1161,傳聲器1162可提供用戶與手機(jī)之間的音頻接口。音頻電路1160可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號,傳輸?shù)綋P(yáng)聲器1161,由揚(yáng)聲器1161轉(zhuǎn)換為聲音信號輸出;另一方面,傳聲器1162將收集的聲音信號轉(zhuǎn)換為電信號,由音頻電路1160接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器1180處理后,經(jīng)RF電路1110以發(fā)送給比如另一手機(jī),或者將音頻數(shù)據(jù)輸出至存儲器1120以便進(jìn)一步處理。
[0099]WiFi屬于短距離無線傳輸技術(shù),手機(jī)通過無線通信模塊1170可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖5示出了無線通信模塊1170,但是可以理解的是,其并不屬于手機(jī)1100的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
[0100]處理器1180是手機(jī)的控制中心,利用各種接口和線路連接整個手機(jī)的各個部分,通過運(yùn)行或執(zhí)行存儲在存儲器1120內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器1120內(nèi)的數(shù)據(jù),執(zhí)行手機(jī)的各種功能和處理數(shù)據(jù),從而對手機(jī)進(jìn)行整體監(jiān)控??蛇x的,處理器1180可包括一個或多個處理單元;優(yōu)選的,處理器1180可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信。可以理解的是,上述調(diào)制解調(diào)處理器也可以不集成到處理器1180中。
[0101]手機(jī)1100還包括給各個部件供電的電源1190(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器1180邏輯相連,從而通過電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。
[0102]盡管未示出,手機(jī)1100還可以包括攝像頭、藍(lán)牙模塊等,在此不再贅述。
[0103]在本發(fā)明實(shí)施例中,該終端所包括的處理器1180還具有以下功能:
[0104]提供相互通訊的三個工作線程:第一線程、第二線程和第三線程。其中,第一線程啟動第二線程和第三線程;第二線程進(jìn)行圖片文件掃描,得到待顯示的圖片文件列表,并發(fā)送至第一線程;第一線程根據(jù)待顯示的圖片文件列表,向第三線程請求加載圖片縮略圖;第三線程獲取待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并將縮略圖數(shù)據(jù)返回至所述第一線程;第一線程根據(jù)縮略圖數(shù)據(jù),通過視圖顯示控件顯示待顯示的圖片文件對應(yīng)的縮略圖。
[0105]在一個實(shí)施例中,該終端所包括的處理器1180還具有以下功能:
[0106]在第一線程根據(jù)待顯示的圖片文件列表,向第三線程請求加載圖片縮略圖之前,第一線程檢測縮略圖緩存中是否包含待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),若是,則第一線程從縮略圖緩存中獲取所述待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并根據(jù)縮略圖數(shù)據(jù),通過視圖顯示控件顯示縮略圖;否則進(jìn)入第一線程根據(jù)待顯示的圖片文件列表,向第三線程請求加載圖片縮略圖的步驟。
[0107]在一個實(shí)施例中,該終端所包括的處理器1180還具有以下功能:
[0108]在第三線程獲取待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并將所述縮略圖數(shù)據(jù)返回至所述第一線程之后,第一線程將縮略圖數(shù)據(jù)存儲至縮略圖緩存中。
[0109]在一個實(shí)施例中,該終端所包括的處理器1180還具有以下功能:
[0110]第三線程檢測是否存儲有所述待顯示的圖片文件對應(yīng)的縮略圖,若是,則第三線程加載存儲的縮略圖,并對加載的縮略圖進(jìn)行解碼,得到待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù);若否,則第三線程創(chuàng)建待顯示的圖片文件對應(yīng)的縮略圖,并存儲縮略圖,以及加載創(chuàng)建的縮略圖,并對加載的縮略圖進(jìn)行解碼,得到待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù)。
[0111]在一個實(shí)施例中,該終端所包括的處理器1180還具有以下功能:
[0112]第一線程監(jiān)控視圖顯示控件的顯示區(qū)域和縮略圖緩存,若縮略圖緩存中緩存有顯示區(qū)域外的圖片文件的縮略圖數(shù)據(jù),則第一線程刪除顯示區(qū)域外的圖片文件在縮略圖緩存中的縮略圖數(shù)據(jù)。
[0113]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種圖片縮略圖顯示方法,所述方法包括: 第一線程啟動第二線程和第三線程; 所述第二線程對終端進(jìn)行圖片文件掃描,得到待顯示的圖片文件列表,并發(fā)送至所述第一線程; 所述第一線程根據(jù)所述待顯示的圖片文件列表,向所述第三線程請求加載圖片縮略圖; 所述第三線程獲取各待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并將所述縮略圖數(shù)據(jù)返回至所述第一線程; 所述第一線程根據(jù)所述縮略圖數(shù)據(jù),通過視圖顯示控件顯示所述待顯示的圖片文件對應(yīng)的縮略圖。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述第一線程根據(jù)待顯示的圖片文件列表,向所述第三線程請求加載圖片縮略圖之前,還包括: 所述第一線程檢測縮略圖緩存中是否包含所述待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),若是,則第一線程從所述縮略圖緩存中獲取所述待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并根據(jù)所述縮略圖數(shù)據(jù),通過視圖顯示控件顯示縮略圖;否則 進(jìn)入所述第一線程根據(jù)所述待顯示的圖片文件列表,向所述第三線程請求加載圖片縮略圖的步驟。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述第三線程獲取待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并將所述縮略圖數(shù)據(jù)返回至所述第一線程之后,還包括: 所述第一線程將所述縮略圖數(shù)據(jù)存儲至所述縮略圖緩存中。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第三線程獲取待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),包括: 所述第三線程檢測是否存儲有所述待顯示的圖片文件對應(yīng)的縮略圖,若是,則第三線程加載所述存儲的縮略圖,并對所述加載的縮略圖進(jìn)行解碼,得到所述待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù); 若否,則第三線程創(chuàng)建所述待顯示的圖片文件對應(yīng)的縮略圖,并存儲所述縮略圖,以及加載所述創(chuàng)建的縮略圖,并對所述加載的縮略圖進(jìn)行解碼,得到所述待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 所述第一線程監(jiān)控所述視圖顯示控件的顯示區(qū)域和縮略圖緩存,若所述縮略圖緩存中緩存有所述顯示區(qū)域外的圖片文件的縮略圖數(shù)據(jù),則所述第一線程刪除所述顯示區(qū)域外的圖片文件在縮略圖緩存中的縮略圖數(shù)據(jù)。
6.一種圖片縮略圖顯示裝置,其特征在于,所述裝置包括: 第一線程,用于啟動第二線程和第三線程; 所述第二線程用于對終端進(jìn)行圖片文件掃描,得到待顯示的圖片文件列表,并發(fā)送至所述第一線程; 所述第一線程還用于根據(jù)所述待顯示的圖片文件列表,向所述第三線程請求加載圖片縮略圖; 所述第三線程用于獲取各待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并將所述縮略圖數(shù)據(jù)返回至所述第一線程; 所述第一線程還用于根據(jù)所述縮略圖數(shù)據(jù),通過視圖顯示控件顯示所述待顯示的圖片文件對應(yīng)的縮略圖。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一線程還用于檢測縮略圖緩存中是否包含所述待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),若是,則從所述縮略圖緩存中獲取所述待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù),并根據(jù)所述縮略圖數(shù)據(jù),通過視圖顯示控件顯示縮略圖;否則根據(jù)所述待顯示的圖片文件列表,向所述第三線程請求加載圖片縮略圖。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第一線程還用于在接收到縮略圖數(shù)據(jù)后將所述縮略圖數(shù)據(jù)存儲至所述縮略圖緩存中。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第三線程用于檢測是否存儲有所述待顯示的圖片文件對應(yīng)的縮略圖,若是,則加載所述存儲的縮略圖,并對所述加載的縮略圖進(jìn)行解碼,得到所述待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù);若否,則創(chuàng)建所述待顯示的圖片文件對應(yīng)的縮略圖,并存儲所述縮略圖,以及加載所述創(chuàng)建的縮略圖,對所述加載的縮略圖進(jìn)行解碼,得到所述待顯示的圖片文件對應(yīng)的縮略圖數(shù)據(jù)。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一線程還用于監(jiān)控所述視圖顯示控件的顯示區(qū)域和縮略圖緩存,若所述縮略圖緩存中緩存有所述顯示區(qū)域外的圖片文件的縮略圖數(shù)據(jù),則刪除所述顯示區(qū)域外的圖片文件在縮略圖緩存中的縮略圖數(shù)據(jù)。
【文檔編號】G06F9/46GK104252379SQ201310257165
【公開日】2014年12月31日 申請日期:2013年6月25日 優(yōu)先權(quán)日:2013年6月25日
【發(fā)明者】陳建銘 申請人:騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1