1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Glide.with(mContext).load(R.drawable.open_door_fail) .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) { int duration = 0; // 计算动画时长 GifDrawable drawable = (GifDrawable) resource; GifDecoder decoder = drawable.getDecoder(); for (int i = 0; i < drawable.getFrameCount(); i++) { duration += decoder.getDelay(i); } //发送延时消息,通知动画结束 handler.sendEmptyMessageDelayed(ANIMDISMISS, duration); return false; } }) .into(new GlideDrawableImageViewTarget(ivOpenDoor, 1)); }
|