Fresco是facebook推出的一款強(qiáng)大的圖片加載的框架,這個(gè)框架出來(lái)一段時(shí)間了,前一段時(shí)間使用過(guò)了ImageLoader的框架,生命在于折騰,今天就來(lái)折騰一下Fresco這個(gè)強(qiáng)大的框架。

1.配置環(huán)境
由于我用的是android studio所以這里就只是說(shuō)一下android studio下如何配置,在強(qiáng)大的gradle,只需要一句話搞定,gradle會(huì)幫你下載這個(gè)Fresco框架,gradle真好,可以自動(dòng)維護(hù)你項(xiàng)目中的框架
compile 'com.facebook.fresco:fresco:0.5.0+'
2.開(kāi)始使用Fresco
因?yàn)槲疫@里加載的是一張網(wǎng)絡(luò)圖片,所以要獲得網(wǎng)絡(luò)權(quán)限初識(shí)Facebook的強(qiáng)大Android圖片加載的框架:Fresco
初始化Fresco,如果項(xiàng)目中多處用到Fresco,就直接在application中初始化,如果我只是寫(xiě)著玩玩,直接放在activity中的setContentView()的前面就ok了
Fresco.initialize(context);
用人家的框架就要按照人家的要求來(lái)是不,所以控件名字,命名空間都要聽(tīng)人家的
初識(shí)Facebook的強(qiáng)大Android圖片加載的框架:Fresco
當(dāng)然你也可以不寫(xiě)它的命名空間,用里面的屬性的時(shí)候加上去,不用就別給自己找麻煩了,直接干掉給控件uri就ok了
Uri uri = Uri.parse("http://pic1.nipic.com/2008-09-08/200898163242920_2.jpg");
imageView.setImageURI(uri);
ok,剩下的圖片下載,緩存,圖片移除就交給Fresco了,是不是很強(qiáng)大,但這里有一個(gè)問(wèn)題,你的控件的大小必須確定,不能想以前直接使用wrap_content,當(dāng)然你也可以設(shè)置寬高中的一個(gè)值,但是要設(shè)定寬高比
imageView.setAspectRatio(1.0f);
當(dāng)然上面說(shuō)到它強(qiáng)大了,強(qiáng)大就不止只是加載網(wǎng)絡(luò)圖片吧,它本身也支持本地,Content Provider,asset,res的圖片
本地:file:// Content provider:content:// asset: asset:// res: res://,就是讓你拼一個(gè)uri
當(dāng)然上面提到的SimpleDraweeView只是Drawee其中的控件,沒(méi)有什么很特別的需求使用它就夠了,下面貼一下它里面的一些屬性,方便使用的時(shí)候查找
初識(shí)Facebook的強(qiáng)大Android圖片加載的框架:Fresco
簡(jiǎn)單介紹一下上面的屬性:
placeholderImage就是所謂的展位圖啦,在圖片沒(méi)有加載出來(lái)之前你看到的就是它
failureIamge看到名字就知道是什么了,圖片加載失敗時(shí)顯示的圖片就是它了
retryImage圖片加載失敗時(shí)顯示,提示用戶點(diǎn)擊重新加載,重復(fù)加載4次還是沒(méi)有加載出來(lái)的時(shí)候才會(huì)顯示failureImage的圖片
progressBarImage進(jìn)度條圖片
backgroundImage背景圖片,這里的背景圖片首先被繪制
overlayImage設(shè)置疊加圖,在xml中只能設(shè)置一張疊加圖片,如果需要多張圖片的話,需要在java代碼中設(shè)置哦
pressedStateOverlayImage設(shè)置點(diǎn)擊狀態(tài)下的疊加圖,此疊加圖不能縮放
ImageScaleType這個(gè)就是各種各樣的圖片縮放樣式了,center,centerCrop,fouseCrop,centerInside,fitCenter,fitStart,fitEnd,fitXY
剩下的就是對(duì)圓角的處理了…