Picasso圖片下載緩存庫的使用心得


Picasso的使用呢,是剛來公司沒多久的時候用到的,當時並沒有多大的自覺性將其記錄下來,促使我將它記錄下來的原因是,公司的女神姐姐想要用到圖片下載緩存庫的時候,問我的時候,我發現我記得並不是特別的清楚,還翻了之前的代碼看,才知道我之前寫了個什麼東西,爲何用這個東西,它的使用方法,優勢。。接下來我會一一講述清楚。

Picasso的簡介:

  picassoSquare公司開源的一個Android圖形緩存庫 ,可以實現圖片下載和緩存功能。僅僅只需要一行代碼就能完全實現圖片的異步加載。使用起來特別的方便。

<Picasso是一個用於Android平臺上的下載和緩存圖片的項目。它有許多定製選項,如何處理下載圖片(包括調整和裁剪,以及提供一個接口讓你隨自己心意將圖片轉換成圓角等)。Picasso將要下載的圖片(如果沒有緩存)並將它負載到指定的目標,轉換圖片以適合所顯示的ImageView,來減少內存消耗。>


Picasso的使用:

嘿嘿,還是上Github上的,我並不覺得會比人家寫的好。

https://github.com/square/picasso

另外還有一個強大的中國網友的~

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0731/1639.html


相信有小夥伴想用Picasso卻並不知道怎麼好好用,一會我將我用到的地方粘出來

我用到Picasso的原因呢,是因爲,需要在前面一個界面進行緩存,然後緩存成功的話,就有後面的一個界面進行展示,如果緩存不成功,則不再進行展示,那麼這個需求包括三點,一:圖片緩存    二:圖片是否緩存成功  三:圖片的展示


不多說了,來看看我的代碼,這段代碼,緩存了圖片,並且判斷了圖片是否緩存成功。強大的Picasso~

Picasso.with(WelcomeActivity.this).load(adUrl).fetch(new Callback() {
       @Override
       public void onSuccess() {flag = true;}

       @Override
       public void onError() {flag = false;}
});

最後我是根據flag進行操作的。


加載圖片的代碼:

        mAdImageView = (ImageView) findViewById(R.id.ad_imageview);

        Picasso.with(this).load(adUrl).into(mAdImageView);


圖片下載緩存庫的原理


當然,Picasso使用倒是會了,那麼我們知道圖片下載緩存庫的原理嗎?

http://blog.csdn.net/lmj623565791/article/details/41874561

這一篇文檔,博主帶我們寫一個小demo來感受,有興趣的鞋子們可以去看看的。


Picasso的特性

1、處理Adapter中的ImageView 回收和取消已經回收ImageView的下載進程

部分示例代碼:

@Override 
public void getView(int position, View convertView, ViewGroup parent) { 
SquaredImageView view = (SquaredImageView) convertView; 
if (view == null) { 
view = new SquaredImageView(context); 
} 
String url = getItem(position);Picasso.with(context).load(url).into(view);
} 
 
 

2、使用最少的內存完成複雜的圖片轉換,比如把下載的圖片轉換爲圓角。   

部分示例代碼:   

Picasso.with(context).load(url).resize(50, 50).centerCrop().into(imageView);

Picasso.with(context).load(url).resize(50, 50).centerCrop().into(imageView)   


3、支持本地資源加載

 從 Resources, assets, files, content providers 加載圖片都支持 

  Picasso.with(context).load(R.drawable.landing_screen).into(imageView1); 
  Picasso.with(context).load(new File("/images/oprah_bees.gif")).into(imageView2); 


4、支持調試 

  調用函數 Picasso.setDebug(true) 可以在加載的圖片左上角顯示一個三角形 ,不同的顏色代表不同的加載來源,比如:   

紅色:代表從網絡下載的圖片  

 黃色:代表從磁盤緩存加載的圖片 

綠色:代表從內存中加載的圖片


寫了就以上這些了,再次感慨Picasso的圖片下載緩存庫的強大。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章