Picasso

2016-04-21  本文已影响292人  帅气的欧巴

Picasso

Android 平台一款强大的开源图片下载缓存库。

项目地址:https://github.com/square/picasso

文档介绍:http://square.github.io/picasso/

特点:

(1)可以自动检测 adapter 的重用并取消之前的下载

(2)图片变换

(3)可以加载本地资源

(4)可以设置占位资源

(5)支持 debug 模式

介绍:

1、简单调用 就是一句话:  传递context ,图片url,要加载的View

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

很多常见Android图像加载缺陷都由毕Picasso自动处理:

1.在adapter中需要取消已经不在视野范围的ImageView图片资源的加载,否则会导致图片错位,Picasso已经解决了这个问题。

2.使用复杂的图片压缩转换来尽可能的减少内存消耗

3.自带内存和硬盘二级缓存功能

特性:

1、在Adapter中下载图片,自动重用缓存 和 取消下载。

@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)

当然我们也可以自定义需求,实现 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()";

       }

}

CropSquareTransformation的对象传递给实例的 transform 方法即可。

3、加载占为图以及错误图片

Picasso.with(context)

.load(url)

.placeholder(R.drawable.user_placeholder)    //占位用

.error(R.drawable.user_placeholder_error)    //错误显示

.into(imageView);

4、资源加载

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

Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2);

Picasso.with(context).load(new File(...)).into(imageView3);

Download

Jar包下载

Gradle:

compile 'com.squareup.picasso:picasso:2.5.2'

如果想了解其原理和更多用法,请参看:

http://blog.csdn.net/chdjj/article/details/49964901 

上一篇下一篇

猜你喜欢

热点阅读