第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

就只是簡單的直接使用GertImageFromURL()的那種方法來加載(不是用滾動條監(jiān)聽的方式),但是第一頁圖片都只是默認(rèn)圖片沒有加載啊,必須把一個item小時候重新刷一下才有圖片

private?ImageView?mImageView;
	private?String?murl;
	private?LruCache<String,?Bitmap>cache;
	
	public?Pic_loader(){
		int?maxSize=(int)?(Runtime.getRuntime().maxMemory())/4;
		cache=new?LruCache<String,?Bitmap>(maxSize){

			@Override
			protected?int?sizeOf(String?key,?Bitmap?value)?{
				//?TODO?Auto-generated?method?stub
				return?value.getByteCount();
			}
			
		};
		
	}
	public?void?addBitMapToCache(String?url,Bitmap?bitmap){
		if(getBitMapFromCache(url)==null){
			cache.put(url,?bitmap);
		}
	}
	public?Bitmap?getBitMapFromCache(String?url){
		return?cache.get(url);
	}
	private?Bitmap?getBitMap(String?url){
		Bitmap?bitmap=null;
		try?{
			InputStream?is=new?URL(url).openConnection().getInputStream();
			BufferedInputStream?bif=new?BufferedInputStream(is);
			bitmap=BitmapFactory.decodeStream(bif);
			is.close();
		}?catch?(MalformedURLException?e)?{
			//?TODO?Auto-generated?catch?block
			e.printStackTrace();
		}?catch?(IOException?e)?{
			//?TODO?Auto-generated?catch?block
			e.printStackTrace();
		}
		try?{
			Thread.sleep(3000);
		}?catch?(InterruptedException?e)?{
			//?TODO?Auto-generated?catch?block
			e.printStackTrace();
		}
		return?bitmap;
	}
	
	public?void?GetPicByAsyncTask(ImageView?imageView,final?String?url){
		mImageView=imageView;
		murl=url;
		Bitmap?bitmap=getBitMapFromCache(url);
		if(bitmap==null){
			new?NewsAsynctask().execute(url);
		}else{
			if(imageView.getTag().equals(url)){//如果url不一致加不加載,放置在異步加載時的加載錯誤。
				imageView.setImageBitmap(bitmap);
			}
		}
		
	}
	
	private?class?NewsAsynctask?extends?AsyncTask<String,Void,?Bitmap>{

		protected?Bitmap?doInBackground(String...?params)?{
			//?TODO?Auto-generated?method?stub
			Bitmap?bitmap=getBitMap(params[0]);
			if(bitmap!=null){
				addBitMapToCache(params[0],?bitmap);
			}
			return?bitmap;
		}

		@Override
		protected?void?onPostExecute(Bitmap?result)?{
			//?TODO?Auto-generated?method?stub
			super.onPostExecute(result);
			if(mImageView.getTag().equals(murl)){//如果url不一致加不加載,放置在異步加載時的加載錯誤。
				mImageView.setImageBitmap(result);
			}
		}
		
	}

}


正在回答

3 回答

那現(xiàn)在就是表現(xiàn)你的水平時刻到了,自己debug程序試試,在特定的地方打印log比如在return bitmap之前你用Log.i("Bitmap",bitmap.getByteCount()+"");來看看是否存在Bitmap。如果不存在圖片大小,那你就要看看是不是數(shù)據(jù)流出現(xiàn)錯誤。或者代碼運行不對。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

D_inasour 提問者

調(diào)試了,imageview不為空,bipmap內(nèi)容也有·····
2016-12-28 回復(fù) 有任何疑惑可以回復(fù)我~
#2

D_inasour 提問者

非常感謝!
2016-12-29 回復(fù) 有任何疑惑可以回復(fù)我~

哦,沒看到,你應(yīng)該是忘記關(guān)閉睡眠線程了,在返回bitmap就會延遲反應(yīng)

??try?{

????????????Thread.sleep(3000);

????????}?catch?(InterruptedException?e)?{

????????????//?TODO?Auto-generated?catch?block

????????????e.printStackTrace();

????????}


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

D_inasour 提問者

可是等了很久依舊沒有顯示出來呢····苦惱
2016-12-27 回復(fù) 有任何疑惑可以回復(fù)我~

上面這些代碼好亂啊。。。

??private?class?NewsAsynctask?extends?AsyncTask<String,Void,?Bitmap>{


? ? ? @Override

????????protected?void?onPostExecute(Bitmap?result)?{

????????????//?TODO?Auto-generated?method?stub

????????????super.onPostExecute(result);

????????????if(mImageView.getTag().equals(murl)){//如果url不一致加不加載,放置在異步加載時的加載錯誤。

????????????????mImageView.setImageBitmap(result);

????????????}

????????}? ?

????}

你確定你給的代碼不報空指針?

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

D_inasour 提問者

mimageView在調(diào)用GetPicByAsyncTask()方法時就初始化了
2016-12-26 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
Android必學(xué)-異步加載
  • 參與學(xué)習(xí)       50617    人
  • 解答問題       333    個

了解Android中的異步加載處理方法,這是面試問的最多的知識點

進(jìn)入課程

就只是簡單的直接使用GertImageFromURL()的那種方法來加載(不是用滾動條監(jiān)聽的方式),但是第一頁圖片都只是默認(rèn)圖片沒有加載啊,必須把一個item小時候重新刷一下才有圖片

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號