Android使用Glide加载Gif

1,解决Glide加载Gif非常慢问题

   

1

Glide.with(MainActivity.this).load(url).asGif().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(imageView); 

  

为其添加缓存策略,其中缓存策略可以为:Source及None,None及为不缓存,Source缓存原型.如果为ALL和Result就不行

 

2,加载第一贞:

1

Glide.with(context).load(gifUrl).asBitmap().into(imageViewGifAsBitmap);

 

3,控制动画次数:

1

Glide.with(this).load(getResource()).diskCacheStrategy(DiskCacheStrategy.SOURCE).into(new GlideDrawableImageViewTarget(imageView, 1));

4,GIF 时间:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

Glide.with(FirstActivity.this)

        .load(file)

        .asGif()

        .fitCenter()

        .diskCacheStrategy(DiskCacheStrategy.SOURCE)

        .listener(new RequestListener<File, GifDrawable>() {

            @Override

            public boolean onException(Exception e, File model, Target<GifDrawable> target, boolean isFirstResource) {

             

                return false;

            }

 

            @Override

            public boolean onResourceReady(final GifDrawable resource, File model, Target<GifDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {

                new Thread(new Runnable() {

                    @Override

                    public void run() {

                        int duration = 0;

                        try {

                            GifDrawable gifDrawable = (GifDrawable) resource;

                            GifDecoder decoder = gifDrawable.getDecoder();

                            for (int i = 0; i < gifDrawable.getFrameCount(); i++) {

                                duration += decoder.getDelay(i);

                            }

 

                            mGifAdTime = duration;

                        catch (Throwable e) {

                        }

                    }

                }).start();

 

                return false;

            }

        })

        .into(mAdImg);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值