图片加载显示框架Glide使用

开发应用,经常需要加载网络图片来显示。

如果自己去下载后显示出来,遇到大量的图片显示,处理有些麻烦,缓存也可能会很大。

当然这些都可以想办法处理,但是需要耗费很多时间。

所以有很多第三方的框架,实现了这些功能,能自动加载图片并显示,也能控制缓存大小,甚至可以根据界面的生命周期自动加载和暂停,使用非常方便。

以前使用过Picasso框架好长一段时间,但是非常小的概率会测到图片显示一半的情况。后来改用了Glide框架,再也没测到过有什么bug了。

所以这里介绍下Glide的使用,这东西也是有些小坑,但是问题不大,按照以下方法,没测到什么问题。

使用方法:

一、添加依赖

compile 'com.github.bumptech.glide:glide:3.7.0'

二、封装工具类

package com.dway.utils;

import android.content.Context;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;

/**
 * 需要依赖:compile 'com.github.bumptech.glide:glide:3.7.0'
 * Created by ldw on 2018/4/10.
 */

public class GlideUtil {

    /**
     * 加载图片
     * @param imageView 显示的控件
     * @param url 图片地址
     * @param errResId 加载失败时的图片
     */
    public static void loadPic(Context context, ImageView imageView, String url, int errResId){
        Glide.with(context.getApplicationContext())
                .load(url)
                .asBitmap()
                .placeholder(errResId)
                .error(errResId)
                .centerCrop()
                //.dontAnimate()
                .into(imageView);
    }

    /**
     * 可以传入Activity、fragment等,会自动根据activity或fragment的生命周期加载和暂停加载
     */
    public static void loadPicWithLifeCycle(Context context, ImageView imageView, String url, int errResId){
        Glide.with(context)
                .load(url)
                .asBitmap()
                .placeholder(errResId)
                .error(errResId)
                .centerCrop()
                //.dontAnimate()
                .into(imageView);
    }

    /**
     * 不用缓存加载图片
     * @param imageView 显示的控件
     * @param url 图片地址
     * @param errResId 加载失败时的图片
     */
    public static void loadPicWhihoutCache(ImageView imageView, String url, int errResId){
        Glide.with(MyApp.getContext())
                .load(url)
                .diskCacheStrategy(DiskCacheStrategy.NONE)
                .placeholder(errResId)
                .error(errResId)
                .into(imageView);
    }

}

注意得这样写,最开始我按自己的想法调用了一些方法,出现一些奇怪的问题,具体不太记得了,可以自己写个试下,但这样写法目前是没问题的。

三、使用

GlideUtil.loadPic(context, itemHolder.iconView, dataList.get(position).cover, R.drawable.icon_loading);

这是在RecyclerView中的使用,很简单,一句代码就搞定了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值