1. 程式人生 > >Picasso圖片下載快取庫的使用心得

Picasso圖片下載快取庫的使用心得

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

Picasso的簡介:

  picassoSquare公司開源的一個Android圖形快取庫 ,可以實現圖片下載和快取功能。僅僅只需要一行程式碼就能完全實現圖片的非同步載入。使用起來特別的方便。

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


Picasso的使用:

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

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

相信有小夥伴想用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使用倒是會了,那麼我們知道圖片下載快取庫的原理嗎?

這一篇文件,博主帶我們寫一個小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的圖片下載快取庫的強大。