安卓图片缓存通过Glide

最近项目中要做启动图缓存图片,刚开始想的缓存文件,后来尝试用缓存来做找到这种方式来缓存

这种方式不需要指定控件可以多缓存非常好用

废话不多说直接上干货

for (int i = 0; i < imgs.size(); i++) {
            int finalI = i;
            SimpleTarget<GlideDrawable> simpleTarget = new SimpleTarget<GlideDrawable>() {
                @Override
                public void onResourceReady(GlideDrawable resource, GlideAnimation glideAnimation) {
//                            imageView.setImageDrawable(resource);
                    Log.i("测试缓存图片", "-------" + finalI);
                }
            };
            Glide.with(
ThinksnsActivity.this.getApplicationContext()).load(imgs.get(i)).diskCacheStrategy(DiskCacheStrategy.ALL).into(simpleTarget); }

这种方式来进行多缓存值得注意的是上下文需要传getApplicationContext()否则在activity finish的时候会出错

下面看加载的方法、

                        Glide.getPhotoCacheDir(ThinksnsActivity.this);
                        Log.i("inflaAdsData", "有图片缓存加载");
                        //图片加载完成之后监听
                        int finalPostionRandomCptPlanIdeas = postionRandomCptPlanIdeas;
                        Glide.with(ThinksnsActivity.this.getApplicationContext()).load(planIdeasBeans.get(postionRandomCptPlanIdeas).getAttach_info().getAttach_middle()).diskCacheStrategy(DiskCacheStrategy.ALL)
                               .crossFade(1000)
                                .into(new GlideDrawableImageViewTarget(iv_launcher) {
                                    @Override
                                    public void onLoadStarted(Drawable placeholder) {
                                        // 开始加载图片
                                        Log.i("inflaAdsData", "开始加载图片");
                                    }

                                    @Override
                                    public void onLoadFailed(Exception e, Drawable errorDrawable) {
                                        Log.i("inflaAdsData", "加载图片失败");
                                        jumpToMain();
                                    }

                                    @Override
                                    public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> animation) {
                                        super.onResourceReady(resource, animation);
                                        //投放成功
                                        displayCallback(modelStartAds.getPlan_id(), planIdeasBeans.get(finalPostionRandomCptPlanIdeas).getIdea_id());
                                        Log.i("inflaAdsData", "加载完开始倒计时");
//                                    iv_launcher.setImageDrawable(resource);
                                        countDown(5100);//5秒倒计时方法
                                        iv_launcher.setOnClickListener(new OnClickListener() {
                                            @Override
                                            public void onClick(View v) {

                                                countdowntimer.cancel();

                                                //ad视频跳转

                                            }
                                        });
                                    }
                                });

这里面获取缓存然后在加载之后要监听 来实现倒计时 看注释就很明白

by 磊磊tua

原文地址:https://www.cnblogs.com/widgetbox/p/12597134.html

时间: 2024-11-09 00:13:14

安卓图片缓存通过Glide的相关文章

Android探索之图片缓存&lt;初识Glide&gt;(三)

前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架.技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实现方案不能满足项目的需求改用Afinal,由于Afinal不再维护而选择了师出同门的Xutils,中间也接触过别的开源框架比如Picasso,对Picasso的第一次印象就不太好,初次接触是拿到了公司刚从外包公司接手过来的图片社交类app,对内存占用太大,直接感受就是导致ListView滑动有那么一

android使用ImageLoader实现图片缓存(安卓开发必备)

相信大家在学习以及实际开发中基本都会与网络数据打交道,而这其中一个非常影响用户体验的就是图片的缓存了,若是没有弄好图片缓存,用户体验会大大下降,总会出现卡顿情况,而这个问题尤其容易出现在ListView中的Item有图片的情况中. 前面与大家分享了一个网络连接框架Retrofit,里面也有类似的图片加载的picasso,大家都可以去体验,直通车:http://www.cnblogs.com/liushilin/p/5680135.html 当然还有当前我认为最好用的图片缓存加载框架Fresco,

Android探索之图片缓存&lt;Glide进阶&gt;(四)

前言: 前面学习了Glide的简单使用(http://www.cnblogs.com/whoislcj/p/5558168.html),今天来学习一下Glide稍微复杂一点的使用. GlideModule使用: GlideModule 是一个抽象方法,全局改变 Glide 行为的一个方式,通过全局GlideModule 配置Glide,用GlideBuilder设置选项,用Glide注册ModelLoader等. 1.)自定义一个GlideModule public class MyGlideM

Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide图片缓存库的联系与区别

Universal-Image-Loader,android-Volley,Picasso.Fresco和Glide五大Android开源组件加载网络图片比较 在Android中的加载网络图片是一件十分令人头疼的事情,在网上有着许多关于加载网络图片的开源库,可以让我们十分方便的加载网络图片.在这里介绍一下Universal-Image-Loader,android-Volley,Picasso.Fresco和Glide的一些使用以及最基本的用法介绍. 1. // imageView是一个Imag

Android四大图片缓存(Imageloader,Picasso,Glide,Fresco)原理、特性对比

四大图片缓存基本信息 Universal ImageLoader 是很早开源的图片缓存,在早期被很多应用使用. Picasso 是 Square 开源的项目,且他的主导者是 JakeWharton,所以广为人知. Glide 是 Google 员工的开源项目,被一些 Google App 使用,在去年的 Google I/O 上被推荐,不过目前国内资料不多. Fresco 是 Facebook 在今年上半年开源的图片缓存,主要特点包括:(1) 两个内存缓存加上 Native 缓存构成了三级缓存

安卓图片的异步请求及使用LruCache缓存和手机内存两层存储图片,避免重新加载页面带来的重新请求

看到网友的一片技术博客讲解了LruCache的使用,我把它加到了我的项目中,但是加入断点发现,列表上下滑动时,确实可以不用重新加载图片,但是重新打开这个activity或者重新启动应用,LruCache的缓存都不再存在,而需要重新联网下载,所有我对这个方法加以改进,加入了一层往手机内存存储图片的过程. 这样的话,使用图片时,先从LruCache中加载,如果LruCache中不存在该图片资源的话,再从手机存储中进行加载,如果同样不存在,则先显示一个默认图片. 另一方面,我的项目使用图片的是list

Android 三大图片缓存原理、特性对比

这是我在 MDCC 上分享的内容(略微改动),也是源码解析第一期发布时介绍的源码解析后续会慢慢做的事. 从总体设计和原理上对几个图片缓存进行对比,没用到他们的朋友也可以了解他们在某些特性上的实现. 上篇关于选择开源项目的好处及如何选择开源项目可见:开源项目使用及选型. 一. 四大图片缓存基本信息 Universal ImageLoader 是很早开源的图片缓存,在早期被很多应用使用. Picasso 是 Square 开源的项目,且他的主导者是 JakeWharton,所以广为人知. Glide

封装篇——图片模块(Glide)

如今市面上差点儿全部的app都用到了图片,图片模块的开发是app开发中不可缺少的一块工作, 开源的力量是强大的.好多优秀的第三方项目能够任君使用,帮助我们提高效率.而且不须要反复造轮子,这边我採用的是google官方推荐的 Glide项目.至于为何选择它请读者们自行谷歌glide详情,谷歌之前可先參考 怎样评估开源库是否值得引入 : 好! 那么废话不多讲 .进入今天主题:图片模块(Glide封装): 基础方法 此段是依据我们经常使用到的一些方法所整理出来的.有遗漏或者有什么补充,欢迎大家来建议.

安卓图片框架:universal-image-loader的快速使用

在安卓开发过程中难免会遇到以下几个情况: 1.图片异步加载 2.图片缓存 3.图片显示 4.其它--(忘记了) 以上的这些情况,可能要自己去写不少代码去实现这些功能,而且对于一些新手,可能写了半天,发现效果很不理想.内存问题也处理不好.异步也不好控制(我就是这样).所以搜了一下,发现网上最流行的一个安卓图片开源框架 universal-image-loader,亲自使用了一下,发现真是的好用啊!一共就加十几行代码就搞定了,妈妈再也不用担心我花时间去瞎搞八搞的了! 好了,下面来说说快速使用这个框架