Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android:強大的圖片下載和緩存庫Picasso

android:強大的圖片下載和緩存庫Picasso

編輯:關於Android編程

1.Picasso簡介

Picasso是Square公司出品的一個強大的圖片下載和緩存圖片庫。官方網址是:http://square.github.io/picasso/

只需要一句代碼就可以將圖片下載並設置到ImageView上。

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);


2.主要特點

2.1Adapter downloads

使用ListView,GridView的時候,自動檢測Adapter的重用(re-use),取消下載,使用緩存。

@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.2圖像處理與變換

將圖像進行變換,以更好的適應布局控件等,減小內存開銷。

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

當然,我們也可以寫自己的變換類,但是必須實現Transformation接口,如:

/**
	 * 自定義接口,實現圖像縮小為原來的一半
	 */
	public class CropSquareTransformation implements Transformation {
		@Override
		public Bitmap transform(Bitmap source) {
			int size = Math.min(source.getWidth(), source.getHeight());
			int x = (source.getWidth() - size) / 2;
			int y = (source.getHeight() - size) / 2;
			Bitmap result = Bitmap.createBitmap(source, x, y, size, size);
			if (result != source) {
				source.recycle();
			}
			return result;
		}

		@Override
		public String key() {
			return "square()";
		}
	}

然後設置transform方法就可以了:

Picasso.with(this).load("http://i.imgur.com/DvpvklR.png")
				.transform(new CropSquareTransformation()).into(iv_test2);

效果圖如下:

\


2.3。支持設置加載之前的圖片,和加載失敗後的圖片。

如:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD48cD48cHJlIGNsYXNzPQ=="brush:java;">Picasso.with(this) .load("http://i.imgur.com/DvpvklR.png") .placeholder(R.drawable.abc) .error(R.drawable.ic_launcher) .transform(new CropSquareTransformation()) .into(iv_test1);

ImageView創建時顯示abc.png,如果加載成功,顯示的是DvpvklR.png,如果加載失敗,顯示ic_launcher.png.

2.4支持加載本地圖片和sdcard中的圖片文件等。

Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);
Picasso.with(context).load(new File(...)).into(imageView2);


Picasso下載地址:http://square.github.io/picasso/


未經允許不得用於商業目的
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved