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,否则会出现异常。