zoukankan      html  css  js  c++  java
  • 安卓图片缓存通过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

  • 相关阅读:
    Codeforces 1017E The Supersonic Rocket 凸包,计算几何,字符串,KMP
    Codeforces 1017F The Neutral Zone 数论
    51Nod1253 Kundu and Tree 容斥原理
    扩展中国剩余定理 (exCRT) 的证明与练习
    简单布局
    自创一个百变布局
    ajax上传文件
    DIV+CSS布局
    windowbuilder
    SWT开发工具
  • 原文地址:https://www.cnblogs.com/widgetbox/p/12597134.html
Copyright © 2011-2022 走看看