欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于Android平臺的圖片加載方法

文檔序號:6494074閱讀:157來源:國知局
基于Android平臺的圖片加載方法
【專利摘要】本發(fā)明涉及一種圖片加載方法,尤其涉及一種基于Android平臺的圖片加載方法。本發(fā)明的基于Android平臺的圖片加載方法,包括解決加載大量圖片的時候界面卡住和內(nèi)存不夠的流程。本發(fā)明的基于Android平臺的圖片加載方法針對圖片列表顯示慢的問題,本發(fā)明中使用了異步加載圖片的方法,加快了圖片列表的顯示速度,并且使得列表滾動的順滑性大幅提高。
【專利說明】 基于Android平臺的圖片加載方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種圖片加載方法,尤其涉及一種基于Android平臺的圖片加載方法。
【背景技術(shù)】
[0002]Android平臺在當(dāng)今社會中的應(yīng)用越來越廣,Android平臺可應(yīng)用于多種終端,如手機、平板、智能電視、機頂盒等?;贏ndroid平臺的應(yīng)用程序也越來越多,并且很多都會頻繁的處理圖片數(shù)據(jù)。在Android平臺下,系統(tǒng)會為每一個應(yīng)用程序開啟一個虛擬機進程,并為其分配指定大小的內(nèi)存,當(dāng)有大量圖片加載到內(nèi)存中時就會造成內(nèi)存溢出,同時應(yīng)用程序崩潰。當(dāng)有大量圖片需要同時顯示的時候,應(yīng)用程序會去讀取圖片,當(dāng)圖片全部讀取完成后才會完成顯示,這樣就造成了界面卡頓的現(xiàn)象。

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

[0003]本發(fā)明的技術(shù)效果能夠克服上述缺陷,提供一種基于Android平臺的圖片加載方法,其解決加載大量圖片時遇到的相關(guān)問題,如加載大量圖片時會導(dǎo)致應(yīng)用卡住,大量圖片會導(dǎo)致內(nèi)存不夠,從而使應(yīng)用強行退出,加載網(wǎng)絡(luò)圖片時速度會變得特別慢。在該發(fā)明中解決了以上問題,使應(yīng)用的使用體驗流暢。
[0004]為實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:其包括解決加載大量圖片的時候界面卡住和內(nèi)存不夠的流程,
[0005]其中,解決加載大量圖片的時候界面卡住的步驟如下:
[0006]( I)繼承相應(yīng)的適配器類;
[0007](2)重寫類中的getViewO函數(shù),該函數(shù)返回一個View對象,列表控件或網(wǎng)
[0008]格控件會把該對象加載到相應(yīng)的項目中;
[0009](3)在getViewO函數(shù)中,首先會把圖片的地址,即圖片的URL使用setTagO函數(shù),給正在處理的ImageView對象設(shè)置標簽,使得可以通過圖片地址找到該ImageView對象;
[0010](4)調(diào)用圖片加載的函數(shù),來獲取圖片地址所對應(yīng)的圖片數(shù)據(jù),并且在其中設(shè)置回調(diào)函數(shù),該回調(diào)函數(shù)實現(xiàn)的功能是,以圖片地址為標簽來查找相應(yīng)的對象,找到之后將相應(yīng)的圖片數(shù)據(jù)加載到對象中;
[0011]其中,解決內(nèi)存不夠的流程在圖片加載函數(shù)中,定義圖片地址到圖片數(shù)據(jù)的映射表的時候,把保存圖片數(shù)據(jù)的內(nèi)存類型聲明為軟引用類型SoftReference,該類型的內(nèi)存會在系統(tǒng)內(nèi)存不夠的情況下由系統(tǒng)強制回收。
[0012]應(yīng)用加載大量圖片的時候,界面會卡住,無法操作,解決思路:使用異步加載技術(shù),先使界面顯示出來,然后使用新開的線程來更新界面中的相關(guān)控件。
[0013]應(yīng)用顯示大量圖片的時候,導(dǎo)致內(nèi)存不夠,應(yīng)用強行退出,解決思路:使用軟引用SoftReference類型來保存圖片到內(nèi)存,在內(nèi)存不夠時,使系統(tǒng)可以自行回收用不到的圖片所占內(nèi)存。加載圖片的縮略圖。
[0014]該技術(shù)主要應(yīng)用于android應(yīng)用需要加載大量網(wǎng)絡(luò)圖片的情況。同樣適用于加載大量本地圖片的情況。當(dāng)android設(shè)備內(nèi)存較小的時候,也可以使用該技術(shù)來避免內(nèi)存不夠的情況。
[0015]本發(fā)明的基于Android平臺的圖片加載方法針對圖片列表顯示慢的問題,本發(fā)明中使用了異步加載圖片的方法,加快了圖片列表的顯示速度,并且使得列表滾動的順滑性大幅提高。針對內(nèi)存不夠的問題,本發(fā)明中使用了將內(nèi)存聲明為SoftReference類型的方法,使得該片內(nèi)存可在內(nèi)存不夠的時候由系統(tǒng)強制回收,減少了內(nèi)存占用。同時,采用了加載圖片縮略圖的方法,進一步減少圖片在內(nèi)存中的占用。使用以上兩種方法,避免了隨時因為內(nèi)存不夠帶來的程序崩潰問題。
【具體實施方式】
[0016]本發(fā)明的基于Android平臺的圖片加載方法,包括解決加載大量圖片的時候界面卡住和內(nèi)存不夠的流程。
[0017]針對第一個技術(shù)問題,以下是具體的技術(shù)方案:
[0018]在android應(yīng)用中加載大量圖片一般會用到列表控件以及網(wǎng)格控件,在顯示圖片的時候需要為其設(shè)置相應(yīng)的適配器,在該發(fā)明中通過重寫適配器來實現(xiàn)異步加載圖片。
[0019]首先,繼承相應(yīng)的適配器類。
[0020]然后,重寫類中的getViewO函數(shù),該函數(shù)返回一個View對象,列表控件或網(wǎng)格控件會把該對象加載到相應(yīng)的項目中。
[0021]在getViewO函數(shù)中,首先會把圖片的地址,即圖片的URL使用setTagO函數(shù),給正在處理的ImageView對象設(shè)置標簽,使得可以通過圖片地址找到該ImageView對象。
[0022]然后會調(diào)用圖片加載的函數(shù),來獲取圖片地址所對應(yīng)的圖片數(shù)據(jù),并且在其中設(shè)置回調(diào)函數(shù),該回調(diào)函數(shù)實現(xiàn)的功能是,以圖片地址為標簽來查找相應(yīng)的對象,找到之后將相應(yīng)的圖片數(shù)據(jù)加載到對象中。
[0023]該圖片加載函數(shù)有兩類返回值,一種不為空,這時會設(shè)置獲取到的數(shù)據(jù)到ImageView對象上,另一種為空,這時會設(shè)置一個默認的圖片到對象上。
[0024]列表控件或網(wǎng)格控件會為可視范圍內(nèi)的項目調(diào)用getViewO,使用上述方法之后,getViewO可以快速返回,從而使頁面迅速顯示出來,相比于傳統(tǒng)的加載方法,速度極快。
[0025]圖片加載函數(shù)的內(nèi)部是這樣實現(xiàn)的,首先需要定義一個圖片地址到圖片數(shù)據(jù)的映射表,在收到圖片地址之后首先去表里查詢是否有該地址,如果有則查詢對應(yīng)的數(shù)據(jù)是否為空,不為空則表示需要的圖片在緩存中,這時候把該數(shù)據(jù)返回。否則表示該數(shù)據(jù)不在緩存中,需要另外加載。開啟新線程從網(wǎng)絡(luò)獲取圖片,然后將該圖片以及相應(yīng)的地址加入到映射表,最后調(diào)用回調(diào)函數(shù),把數(shù)據(jù)設(shè)置到圖片地址對應(yīng)的對象上,完成圖片加載。
[0026]針對第二個技術(shù)問題,具體解決方案如下:
[0027]在圖片加載函數(shù)中,定義圖片地址到圖片數(shù)據(jù)的映射表的時候,把保存圖片數(shù)據(jù)的內(nèi)存類型聲明為軟引用類型SoftReference,該類型的內(nèi)存會在系統(tǒng)內(nèi)存不夠的情況下由系統(tǒng)強制回收,因此不會造成內(nèi)存原因的程序崩潰。
[0028]相比于使用強引用或弱引用的方法,該方法可以及時回收內(nèi)存,避免程序崩潰。[0029]此外如果加載的單張圖片體積過大,仍然會造成內(nèi)存不夠用,程序崩潰,所以在本發(fā)明中使用了加載縮略圖的技術(shù)。在從網(wǎng)絡(luò)獲取圖片的時候需要兩步操作,第一次是在獲取到圖片的流之后,僅從中讀取圖片的長寬,而不讀取實際的數(shù)據(jù),然后查看圖片的長寬是否超標,如果超標,則計算縮小后的長寬,最后第二次獲取圖片的流,并從中讀取指定比例的圖片數(shù)據(jù)。
【權(quán)利要求】
1.一種基于Android平臺的圖片加載方法,其特征在于,包括解決加載大量圖片的時候界面卡住和內(nèi)存不夠的流程, 其中,解決加載大量圖片的時候界面卡住的步驟如下: (1)繼承相應(yīng)的適配器類; (2)重寫類中的getViewO函數(shù),該函數(shù)返回一個View對象,列表控件或網(wǎng) 格控件會把該對象加載到相應(yīng)的項目中; (3)在getViewO函數(shù)中,首先會把圖片的地址,即圖片的URL使用setTagO函數(shù),給正在處理的ImageView對象設(shè)置標簽,使得可以通過圖片地址找到該ImageView對象; (4)調(diào)用圖片加載的函數(shù),來獲取圖片地址所對應(yīng)的圖片數(shù)據(jù),并且在其中設(shè)置回調(diào)函數(shù),該回調(diào)函數(shù)實現(xiàn)的功能是,以圖片地址為標簽來查找相應(yīng)的對象,找到之后將相應(yīng)的圖片數(shù)據(jù)加載到對象中; 其中,解決內(nèi)存不夠的流程在圖片加載函數(shù)中,定義圖片地址到圖片數(shù)據(jù)的映射表的時候,把保存圖片數(shù)據(jù)的內(nèi)存類型聲明為軟引用類型SoftReference,該類型的內(nèi)存會在系統(tǒng)內(nèi)存不夠的情況下由系統(tǒng)強制回收。
2.根據(jù)權(quán)利要求1所述的基于Android平臺的圖片加載方法,其特征在于,圖片加載的函數(shù)首先需要定義一個圖片地址到圖片數(shù)據(jù)的映射表,在收到圖片地址之后首先去表里查詢是否有該地址,如果有則查詢對應(yīng)的數(shù)據(jù)是否為空,不為空則表示需要的圖片在緩存中,這時候把該數(shù)據(jù)返回;否則表示該數(shù)據(jù)不在緩存中,需要另外加載;開啟新線程從網(wǎng)絡(luò)獲取圖片,然后將該圖片以及相應(yīng)的地址加入到映射表,最后調(diào)用回調(diào)函數(shù),把數(shù)據(jù)設(shè)置到圖片地址對應(yīng)的對象上,完成圖片加載。
【文檔編號】G06F9/445GK103902318SQ201210583612
【公開日】2014年7月2日 申請日期:2012年12月30日 優(yōu)先權(quán)日:2012年12月30日
【發(fā)明者】于忠清, 王兵, 顧微微, 翟偉偉, 崔九梅, 王愛玲, 趙紅雷 申請人:青島海爾軟件有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
康定县| 嵩明县| 阳春市| 屏东市| 泽州县| 沅江市| 鲁甸县| 亳州市| 通渭县| 乌兰察布市| 锦屏县| 常熟市| 望都县| 舒兰市| 青铜峡市| 交口县| 南投市| 湖州市| 济宁市| 宿迁市| 闸北区| 临江市| 武定县| 禄劝| 茶陵县| 寿阳县| 连南| 柞水县| 千阳县| 蒙自县| 西丰县| 萍乡市| 连云港市| 白河县| 晋城| 静乐县| 黄大仙区| 普定县| 新化县| 乌拉特前旗| 新建县|