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