相关文章推荐
冲动的消炎药  ·  MySQL ...·  2 月前    · 
坐怀不乱的金针菇  ·  Request limits and ...·  1 年前    · 

Glide 在 4.0 以前的版本,可以直接通过 GlideDrawableImageViewTarget() 来控制 Gif 的播放次数。

Glide.with(mMainActivity).load(R.drawable.gif_drawable).into(new GlideDrawableImageViewTarget(imageview,2));

在 4.0 版本后,会发现 GlideDrawableImageViewTarget() 这个类没有了,然后我们去看 GifDrawable 这个类;

可以发现是有 start(),stop(),setLoopCount() 等方法的,我们要做的就是调用 GIFDrawable 所提供的方法就可以。

我们再来看原来的 into(new GlideDrawableImageViewTarget()),他传进去的就是一个 Target 对象,我们自定义一个 Target,在这里设置 GIFDrawable 的属性即可。

最终代码如下:

Glide.with(mMainActivity).load(R.drawable.gif_drawable).into(new SimpleTarget<Drawable>() {
                    @Override
                    public void onResourceReady(Drawable drawable, Transition<? super Drawable> transition) {
                        if (drawable instanceof GifDrawable) {
                            GifDrawable gifDrawable = (GifDrawable) drawable;
                            gifDrawable.setLoopCount(2);
                            imageView.setImageDrawable(drawable);
                            gifDrawable.start();

当然也可以通过设置 listener 等多种方法来做,这里就不给出代码了。

Glide 在 4.0 以前的版本,可以直接通过 GlideDrawableImageViewTarget() 来控制 Gif 的播放次数。Glide.with(mMainActivity).load(R.drawable.gif_drawable).into(new GlideDrawableImageViewTarget(imageview,2));在 4.0 版本后,会发现 Gli... RequestBuilder request = Glide.with(MainActivity.this).asGif() .listener(new RequestListener() { @Override public boolean onLoadFailed(@Nul Glide.with(this).asGif().load(gifUrl).into(new GlideDrawableImageViewTarget(imageview, N)) ;//N为播放次数 2.添加播放结束监听 public static void loadOneTimeGif(Context context, Object model, final ImageView imageView,
Glide4.8设置gif播放监听回调,可以设置播放一次,或多次,并且可以监听到播放完成回调方法 在Glide4.0之后,没法再直接获取GifDecoder对象了,原因是因为GlideDrawable不再提供这个方法了。 package com.xc.app.ui.terminal; import android.content.Context; import android.sup...
在使用glide加载gif动画,有时需要设置播放次数,然后播放玩一次或者几次之后,需要在播放完做一些其他的操作,直接看代码:Glide.with(this) .load(R.drawable.xiaoguo) .diskCacheStrategy(DiskCacheStrategy.SOURCE)
项目中需要控制Gif的暂停与继续播放,万能的glide框架竟然没有提供现成的api,想破头脑,最后在公司架构师提供的一个网页链接中找到了答案。 https://github.com/bumptech/glide/issues/1916 代码很少,会者不难,难者不会 Glide.with(context).asGif().load(list.get(position)).apply(opti...
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //使用 Glide Glide.with(this).load(url).into(imageView); 需要注意的是,一定要在 Application 的 onCreate 方法中初始化 Glide,否则会出现异常。