Glide 图片加载

Glide 是 Google 员工的作品(github链接),它完全基于 Picasso ,沿袭了 Picasso 的简洁风格,但在其上做了大量优化与改进。两者区别如下:

  • 在内存占用方面, Glide 默认的 Bitmap 格式是 RGB_565 格式(一个像素占16位),而 Picasso 为ARGB_8888 格式(一个像素占32位),因此 Glide内存开销比Picasso 要小一半;
  • 在磁盘缓存方面,Picasso 只会缓存原始尺寸的图片,而 Glide 缓存的是多种规格,也就意味着 Glide 会根据 ImageView 的大小来缓存相应大小的图片尺寸,比如你 ImageView 大小是200*200,原图是 800*480 ,而使用 Glide 就会缓存 200*200 规格的图,而 Picasso 只会缓存 800*480 规格的。这个改进就会导致 Glide 比 Picasso 加载的速度要快,毕竟少了每次裁剪重新渲染的过程。不过Glide会为每种大小的ImageView缓存 一次,尽管一张图片已经缓存了一次,但是假如你要在另外一个地方再次以不同尺寸显示,则需要重新下载,调整成新尺寸的大小,然后将这个尺寸的也缓存起来,故Glide需要更大的空间来缓存;
  • 最重要的一个特性: Glide 支持加载 Gif 动态图,而 Picasso 不支持该特性。

总之,Glide 是在 Picasso 基础之上进行二次开发的,各个方面做了不少改进,这也导致他的jar包比 Picasso 大,接近 500k,而Picasso 是100多k,不过这个影响不大。

Glide 用法与Picasso 很类似,主要如下所示:

/*添加依赖
dependencies {
  compile 'com.github.bumptech.glide:glide:3.7.0'
}
*/
//对ImageView :
@Override
public void onCreate(Bundle savedInstanceState) {
    ...

    ImageView imageView = (ImageView) findViewById(R.id.my_image_view);

    Glide.with(this).load("http://image85.360doc.com/DownloadImg/2015/05/0716/53278115_3.jpg").into(imageView); //加载网络图片
}

//对ListView:可以直接在Adapter的getView方法中使用     
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    final ImageView myImageView;
    if (convertView == null) {
        ...
    }

        Glide
            .with(viewHolder.imageView.getContext())
            .load(imageUrls[position])
            .into(holder.imageView);

    return convertView;
}

相关资料下载:

glide-3.6.1.jar

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值