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