999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析在Android應(yīng)用開發(fā)中對(duì)圖片加載的優(yōu)化分析

2021-11-07 02:13:02胡暢霞陳娜劉曉星
電腦知識(shí)與技術(shù) 2021年25期

胡暢霞 陳娜 劉曉星

摘要:圖片作為Android應(yīng)用中重要的資源信息,保證圖片資源的流暢顯示對(duì)用戶人機(jī)交互體驗(yàn)的提升至關(guān)重要。該文作者以在ListView控件中加載圖片資源為例,首先簡(jiǎn)述以傳統(tǒng)加載圖片的方式,隨后給出兩種優(yōu)化方案:1)Adapter優(yōu)化;2)引用Android Image Loader 框架。通過(guò)優(yōu)化達(dá)到流暢加載圖片資源的效果,增強(qiáng)用戶體驗(yàn)。

關(guān)鍵詞:圖片加載優(yōu)化;Adapter優(yōu)化; Android Image Loader框架

中圖分類號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2021)25-0078-02

1引言

圖片資源作為Android應(yīng)用中不可或缺的資源,豐富著信息內(nèi)容,使用戶更加容易理解界面?zhèn)鬟_(dá)的信息。在實(shí)際開發(fā)中,因?yàn)槌绦蛐枰?jīng)常連接網(wǎng)絡(luò),且界面上存在著豐富的圖片資源,所以加載圖片時(shí)系統(tǒng)資源的消耗是巨大的。ListView控件作為Android中最常見(jiàn)的控件,因此需要加載網(wǎng)絡(luò)上的圖片資源時(shí)就經(jīng)常需要用到ListView控件。為了使人機(jī)交互友好,就要保證圖片加載要得到快速的響應(yīng),盡量避免加載超時(shí)或者延時(shí)等現(xiàn)象。本文作者以在ListView控件中加載網(wǎng)絡(luò)圖片資源為例,淺析在Android開發(fā)中對(duì)圖片優(yōu)化的如下幾種方法。

2傳統(tǒng)方式加載圖片資源

利用傳統(tǒng)方式在ListView中加載圖片資源,首先創(chuàng)建URL對(duì)象傳入網(wǎng)絡(luò)圖片的網(wǎng)址,網(wǎng)址必須是絕對(duì)路徑,得到圖片的數(shù)據(jù)流。在Android中,提供了BitmapFactory類,用于從不同的數(shù)據(jù)源來(lái)解析、創(chuàng)建Bitmap對(duì)象。Bitmap對(duì)象在如TextView 控件中顯示,最后關(guān)閉數(shù)據(jù)流。

示例代碼:

Bitmap bitmap = null;

URL url;

try {

url = new URL(“視頻網(wǎng)址”);

InputStreamiliu = url.openStream();

bitmap = BitmapFactory.decodeStream(iliu);

iliu.close();}

catch (Exception e) {e.printStackTrace();}

傳統(tǒng)方式簡(jiǎn)單、直接、書寫簡(jiǎn)單,但在UI主線程中執(zhí)行聯(lián)網(wǎng)耗時(shí)操作,不但導(dǎo)致圖片資源加載速度慢,而且影響其他項(xiàng)的響應(yīng)速度。

3利用Adapter優(yōu)化的方式,加載圖片資源

在使用ListView 控件加載圖片資源時(shí),Android引入Adapter機(jī)制作為復(fù)雜數(shù)據(jù)的展示和轉(zhuǎn)化的載體,Adapter作為L(zhǎng)istView控件與數(shù)據(jù)源之間的“中介”,當(dāng)每條數(shù)據(jù)進(jìn)入到可見(jiàn)區(qū)時(shí),Android會(huì)調(diào)用Adapter中的getView()方法來(lái)返回代表著具體數(shù)據(jù)的視圖,由于數(shù)據(jù)成千上萬(wàn),所以getView()方法被多次調(diào)用,因此通過(guò)減少getView()方法的調(diào)用次數(shù)來(lái)優(yōu)化Adapter會(huì)提高加載圖片資源的加載速度。

3.1 利用ViewHolder模式優(yōu)化Adapter

ViewHolder類是Android定義的一個(gè)靜態(tài)類,并不是在Android API中提供的方法。ViewHolder模式的存在,可以大大降低多余的findViewById()方法的調(diào)用,而是把使用控件的代碼放在ViewHolder類里面,然后把View.setTag(holder)放在view中,這樣再次使用時(shí)就可以直接調(diào)用。

利用ViewHolder模式優(yōu)化Adapter,重復(fù)利用convertView回收視圖,減少getView()的調(diào)用次數(shù)達(dá)到優(yōu)化的效果。這種模式加載圖片資源的操作還是在UI主線程中執(zhí)行,在圖片資源數(shù)目少時(shí),這種方法會(huì)有一定的效果,但是圖片資源量大時(shí),依舊會(huì)阻塞UI主線程,導(dǎo)致程序的響應(yīng)慢等現(xiàn)象,治標(biāo)不治本。

3.2 利用工作線程加載數(shù)據(jù)

由于加載網(wǎng)絡(luò)圖片資源,既涉及聯(lián)網(wǎng)操作,又包含著大量的數(shù)據(jù)信息,因此我們需要為此操作重新開辟一個(gè)新的線程來(lái)減輕UI主線程的負(fù)擔(dān)。本文作者在Adapter中使用到的是輕量級(jí)AsyncTask工作線程處理方式:當(dāng)程序需要啟動(dòng)后臺(tái)線程來(lái)加載圖片資源時(shí),使用該工作線程可以很容易做到,同時(shí)在UI線程中也能得到自動(dòng)返回過(guò)來(lái)的結(jié)果。需要注意的是,使用AsyncTask時(shí)有如下幾點(diǎn)事項(xiàng)需要考慮:

1)創(chuàng)建AsyncTask實(shí)例的位置:須在主線程中;

2)調(diào)用AsyncTask的execute()方法的位置:須在主線程中;

3)AsyncTask類中的方法,如onPreExecute、onPostExecute、doInBackground和onProgressUpdate等,它們是由Android系統(tǒng)親自調(diào)用,程序員是不能寫代碼去調(diào)用的;

4)AsyncTask不能被多次調(diào)用,否則會(huì)拋出異常,所以只能被執(zhí)行一次。

主要代碼如下:

class MyPictTaskextends AsyncTask {

WeakReferenceimgViewRef;

intshuliang = 0; public BitmapWorkerTask(ImageViewmyimageView) {

imgViewRef= new WeakReference(myimageView);? ? ?}

protected Bitmap doInBackground(Integer...params) {

主站蜘蛛池模板: 欧美专区在线观看| 亚洲成人黄色网址| 秘书高跟黑色丝袜国产91在线| 亚洲AV无码一二区三区在线播放| 日韩区欧美国产区在线观看| 国内精品自在自线视频香蕉| 在线精品亚洲国产| 免费在线色| 99re热精品视频中文字幕不卡| 日韩av手机在线| 无码专区在线观看| 国产资源免费观看| 国产一线在线| 91久久偷偷做嫩草影院| 婷婷色中文网| 亚洲AV无码一区二区三区牲色| 国产sm重味一区二区三区| 国产手机在线小视频免费观看| 色偷偷一区二区三区| AV老司机AV天堂| 精品国产免费观看一区| 国产女人喷水视频| 91久久精品国产| 国产区在线观看视频| 岛国精品一区免费视频在线观看| 免费人欧美成又黄又爽的视频| 欧美日韩午夜视频在线观看| 日本伊人色综合网| 欧美亚洲激情| 国产av一码二码三码无码| 啪啪免费视频一区二区| 少妇被粗大的猛烈进出免费视频| 国产精品久线在线观看| 日本91视频| 超碰91免费人妻| 黄色网站不卡无码| 国产精品无码翘臀在线看纯欲| 91精品伊人久久大香线蕉| 亚洲大尺码专区影院| 亚洲精品视频免费| 超碰免费91| 国产在线拍偷自揄观看视频网站| 欧美第九页| 91原创视频在线| AV在线麻免费观看网站 | 天天爽免费视频| 色婷婷亚洲十月十月色天| 国产精品免费p区| 无码在线激情片| 亚洲全网成人资源在线观看| 国产视频欧美| 成人一级黄色毛片| 亚洲性影院| 国产成人精品一区二区| 亚洲人在线| 偷拍久久网| 国产综合在线观看视频| 国产精品伦视频观看免费| 国产白浆在线| 亚洲系列无码专区偷窥无码| 亚洲天堂自拍| 亚洲五月激情网| 99久久精品无码专区免费| 日本伊人色综合网| 97视频在线精品国自产拍| 日韩视频福利| 亚洲va精品中文字幕| 香蕉色综合| 91最新精品视频发布页| 毛片网站在线看| 久久久精品久久久久三级| 国产精品第一区| 一级在线毛片| 亚洲男人天堂网址| 91丨九色丨首页在线播放| 伦精品一区二区三区视频| 国产成人综合网在线观看| 国产精品林美惠子在线播放| 国产精品va免费视频| 中文字幕有乳无码| 青青青国产视频| 91亚瑟视频|