Android使用Glide加载Gif


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

   

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

  

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

 

2,加载第一贞:

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

 

3,控制动画次数:
Glide.with(this).load(getResource()).diskCacheStrategy(DiskCacheStrategy.SOURCE).into(new GlideDrawableImageViewTarget(imageView, 1));

4,GIF 时间:

                        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);

  

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM