至于如何集成Glide到项目中,可能每个项目都不一样。
直接看加载gif代码:
Glide.with(mContext).load(imageResource).diskCacheStrategy(DiskCacheStrategy.SOURCE).listener(new RequestListener<Integer, GlideDrawable>() {
@Override
public boolean onException(Exception e, Integer model, Target<GlideDrawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, Integer model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
// 计算动画时长
GifDrawable drawable = (GifDrawable) resource;
GifDecoder decoder = drawable.getDecoder();
for (int i = 0; i < drawable.getFrameCount(); i++) {
duration += decoder.getDelay(i);
}
//发送延时消息,通知动画结束
//以下两个参数都是 int 型,记得如上的声明
LogUtils.i("isTalked",duration+"");
batchTalkHandler.sendEmptyMessageDelayed(gifType,
duration);
return false;
}
}).into(new GlideDrawableImageViewTarget(iv_gif,1));
imageResoure:gif资源,如:R.mipmap.send
1:代表播放一次
batchTalkHandler:自己定义的Handler