Android 获取并显示远程图片 Picasso框架的使用

Picasso是一个强大的Android图片下载和缓存库,提供了简单的API来处理图片加载。它自动缓存图片、压缩图像以减少内存消耗,并自动处理ImageView的回收。使用Picasso,只需一行代码即可实现图片加载,还可以进行图片剪裁、格式转换、设置占位符和错误图片,以及加载本地资源。对于大量图片显示场景,Picasso是一个理想的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Picasso框架
什么是Picasso:

强大的图片下载缓存的第三方库;我觉得这就是对它最准确的描述了,至于其他特性,可以参见官网介绍:Picasso

如何使用Picasso

1.Picasso的基本用法: 
将Picasso添加进项目后,要使用它非常简单,只需要一行代码就能搞定:

Picasso.with(context).load(imageUrl).into(imageView);

短短的一行代码为我们解决了很多问题:

  • 自动将图像缓存在本地
  • 通过图片压缩转换以减少内存消耗
  • 自动处理了ImageView的回收,即自动取消不在视野范围内的ImageView视图资源的加载;

2.适配器:适配器自动发现和重用以前取消的下载:

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

3.图像格式转换:很多时候需要将图片进行格式转换或者剪裁以节省内存或者达到我们的布局效果:

剪裁大小:

    Picasso.with(context).load(imageUrl).resize(50,50).centerCrop().into(imageView);

自定义格式转换:为了实现更多你想要图片转换的效果,你可以自己实现一个实现了Transformation接口的类,然后将其对象传递给transform()方法:

 public calss myTransformation implements Transformation{
        @Overrride
        public Bitmap transform(Bitmap source){
            //对source实现自定义裁剪
        }
        @Override
        public String key(){
            return "square()";
        }

    }

4.占位符图片:所谓的占位符图像即当图片未正常显示时默认的图片,通过placeholder()设置,Picasso也支持设置图片显示错误时显示的默认图片,通过error()设置:

    Picasso.wint(context).load(imageUrl).placeholder(R.drawable.image_placeholder).error(R.drawable.image_error_placeholder).into(imageView);

5.载入本地资源:除了通过网络下载图片,Picasso也可以载入本地图片资源:

Picasso.with(context).load(R.drawable.icon).into(imageView);
    Picasso.with(context).load("file:///android_asset/Adnroid.png").into(imageView);

Picasso.wiht(context).load(new File(...)).into(imageView);

6.调试:为了方便调试,你可以通过调用Picasso的setIndicatiorEnabled(true);可以让不同来源的图片显示一个不同的色彩标记;

总结:

是不是觉得Picasso的使用很简单了,如果应用中需要获取和显示大量的图片数据,Picasso是个不错的选择!

想用的朋友,可以下载一下毕加索的架包http://pan.baidu.com/s/1hrr2jPi


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值