-
異步加載一般有兩種:一,多線程/線程池 二,AsyncTask查看全部
-
android異步加載 1.為什么要使用異步加載? 還是android單線程模型;耗時(shí)操作阻塞UI線程 2.異步加載最常用的兩種方式? 多線程\線程池;AsyncTask查看全部
-
1.聲明lruCache LruCache<String,Bitmap> string是圖片名字,Bitmap是圖片對(duì)象 2.獲取最大可用內(nèi)存,將一部分內(nèi)存作為緩存,創(chuàng)建lruCache ,重寫(xiě)sizeOf方法,返回圖片大小,在每次存入緩存的時(shí)候調(diào)用 3.創(chuàng)建方法存放圖片到緩存和從緩存中取出圖片 4.在主線程中判斷圖片是否存在緩存中,如果不存在異步加載圖片,存在則直接使用 5.在doInBackground方法中,從網(wǎng)絡(luò)上獲取圖片,將不在緩存中的圖片加入緩存 這樣做,可以把下載的圖片放入緩存,在刷新列表的時(shí)候不用每次都去加載圖片,做到了以內(nèi)存換效率查看全部
-
使用lrucache緩存圖片,節(jié)省流量查看全部
-
將url圖片地址轉(zhuǎn)換為bitmap查看全部
-
abc查看全部
-
異步加載——圖片加載優(yōu)化 1. 創(chuàng)建一個(gè)靜態(tài)String[]將所有要顯示的圖片的地址保存起來(lái) public static String[] URLStrings;//用來(lái)保存當(dāng)前所有需要顯示的圖片的url地址 public NewsAdapter(Context context, List<NewsBean> mListData) { super(); this.mList = mListData; mInflater = LayoutInflater.from(context); mImageLoader = new ImageLoader(); URLStrings = new String[mListData.size()]; for (int i = 0; i<mListData.size(); i++){ URLStrings[i] = mListData.get(i).imageUrl; }} 2. 創(chuàng)建一個(gè)方法,加載從start到end的所有圖片 public void loadImages(int start, int end){ for (int i = start; i < end; i++){ //因?yàn)閁RLStrings是靜態(tài)的,所以可以直接使用 String url = NewsAdapter.URLStrings[i]; //從緩存中獲取對(duì)應(yīng)的圖片并判斷 Bitmap bitmap = getBitmapFromCache(url); if(bitmap == null){ NewsAsyncTask task = new NewsAsyncTask(url); task.execute(url); mTasks.add(task); }else { //從緩存中直接獲取數(shù)據(jù)讓iamgeView顯示,這里imageView是從url的tag得來(lái)的 ImageView imageView = (ImageView) mListView.findViewWithTag(url); imageView.setImageBitmap(bitmap); }}} 3. 改寫(xiě)showImageByAsyncTask(),讓顯示圖片的操作交給scroll的監(jiān)聽(tīng)事件 (如圖) 當(dāng)bitmap不在緩存時(shí),也不去加載圖片查看全部
-
abc查看全部
-
圖片加載顯示錯(cuò)誤查看全部
-
異步加載——實(shí)現(xiàn)ListView圖文混排邏輯總結(jié) 第一步 onCreate中new一個(gè)NewsAsyncTask 將url傳遞給getJsonData 實(shí)現(xiàn)異步訪問(wèn) 第二步 getJsonData將url轉(zhuǎn)換為NewsBean對(duì)象 第三步 onPostExecute講NewsBean的數(shù)據(jù)傳遞給NewsAdapter 第四步 NewsAdapter構(gòu)造一個(gè)ListView數(shù)據(jù)源 并將數(shù)據(jù)源設(shè)置給ListView查看全部
-
異步加載查看全部
-
異步加載的總結(jié)查看全部
-
提高異步加載效率與效果查看全部
-
異步加載的緩存機(jī)制查看全部
-
異步加載的兩種方式,多線程和async查看全部
舉報(bào)
0/150
提交
取消