当前位置: 移动技术网 > 移动技术>移动开发>Android > Android开发中ImageLoder进行图片加载和缓存

Android开发中ImageLoder进行图片加载和缓存

2019年07月24日  | 移动技术网移动技术  | 我要评论

图片处理类:

package com.longfei.admin.imageloder_text;
 
import android.app.application;
import android.graphics.bitmap;
import android.os.environment;
 
import com.nostra13.universalimageloader.cache.disc.impl.unlimiteddisccache;
import com.nostra13.universalimageloader.cache.disc.naming.md5filenamegenerator;
import com.nostra13.universalimageloader.cache.memory.impl.usingfreqlimitedmemorycache;
import com.nostra13.universalimageloader.core.displayimageoptions;
import com.nostra13.universalimageloader.core.imageloader;
import com.nostra13.universalimageloader.core.imageloaderconfiguration;
import com.nostra13.universalimageloader.core.assist.imagescaletype;
import com.nostra13.universalimageloader.core.assist.queueprocessingtype;
import com.nostra13.universalimageloader.core.display.fadeinbitmapdisplayer;
import com.nostra13.universalimageloader.core.display.roundedbitmapdisplayer;
import com.nostra13.universalimageloader.core.download.baseimagedownloader;
 
import java.io.file;
 
/**
 * created by admin on 2016/4/9.
 */
public class imageloading extends application {
  @override
  public void oncreate() {
    // todo auto-generated method stub
    super.oncreate();
    imageloaderconfiguration config = new imageloaderconfiguration.builder(
        this)
        .memorycacheextraoptions(480, 800)
            // max width, max height,即保存的每个缓存文件的最大长宽
        .disccacheextraoptions(480, 800, null)
            // can slow imageloader, use it carefully (better don't use
            // it)/设置缓存的详细信息,最好不要设置这个
        .threadpoolsize(3)
            // 线程池内加载的数量
        .threadpriority(thread.norm_priority - 2)
        .denycacheimagemultiplesizesinmemory()
        .memorycache(new usingfreqlimitedmemorycache(2 * 1024 * 1024))
            // you can pass your own memory cache
            // implementation/你可以通过自己的内存缓存实现
        .memorycachesize(2 * 1024 * 1024)
        .disccachesize(50 * 1024 * 1024)
        .disccachefilenamegenerator(new md5filenamegenerator())
            // 将保存的时候的uri名称用md5 加密
        .tasksprocessingorder(queueprocessingtype.lifo)
        .disccachefilecount(100)
            // 缓存的文件数量
        .disccache(
            new unlimiteddisccache(new file(environment
                .getexternalstoragedirectory()
                + "/myapp/imgcache")))
            // 自定义缓存路径
        .defaultdisplayimageoptions(getdisplayoptions())
        .imagedownloader(
            new baseimagedownloader(this, 5 * 1000, 30 * 1000))
        .writedebuglogs() // remove for release app
        .build();// 开始构建
    imageloader.getinstance().init(config);
  }
 
  private displayimageoptions getdisplayoptions() {
    displayimageoptions options;
    options = new displayimageoptions.builder()
        .showimageonloading(r.drawable.ic_launcher) // 设置图片在下载期间显示的图片
        .showimageforemptyuri(r.drawable.ic_launcher)// 设置图片uri为空或是错误的时候显示的图片
        .showimageonfail(r.drawable.ic_launcher) // 设置图片加载/解码过程中错误时候显示的图片
        .cacheinmemory(true)// 设置下载的图片是否缓存在内存中
        .cacheondisc(true)// 设置下载的图片是否缓存在sd卡中
        .considerexifparams(true) // 是否考虑jpeg图像exif参数(旋转,翻转)
        .imagescaletype(imagescaletype.exactly_stretched)// 设置图片以如何的编码方式显示
        .bitmapconfig(bitmap.config.rgb_565)// 设置图片的解码类型//
            // .delaybeforeloading(int delayinmillis)//int
            // delayinmillis为你设置的下载前的延迟时间
            // 设置图片加入缓存前,对bitmap进行设置
            // .preprocessor(bitmapprocessor preprocessor)
        .resetviewbeforeloading(true)// 设置图片在下载前是否重置,复位
        .displayer(new roundedbitmapdisplayer(20))// 是否设置为圆角,弧度为多少
        .displayer(new fadeinbitmapdisplayer(100))// 是否图片加载好后渐入的动画时间
        .build();// 构建完成
    return options;
  }
 
}
 
package com.longfei.admin.imageloder_text;
 
import android.app.activity;
import android.graphics.bitmap;
import android.os.bundle;
import android.util.log;
import android.view.view;
import android.widget.imageview;
 
import com.nostra13.universalimageloader.core.imageloader;
import com.nostra13.universalimageloader.core.assist.failreason;
import com.nostra13.universalimageloader.core.listener.imageloadinglistener;
 
 
 
/**
 * 1、 universal-imageloader的配置
 *
 * 2、用universal-imageloader加载网络图片和本地图片
 *
 * @author administrator
 */
 
 
public class mainactivity extends activity {
  private imageloader loader;
  private imageview iv_img;
 
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_main);
 
    loader=imageloader.getinstance();//实例化imageloder
    iv_img=(imageview)findviewbyid(r.id.iv_img);
 
    string url="file:///"+"加载本地图片";
 
    //加载网络图片,第一个参数为路径
//    loader.displayimage("http://static.oschina.net/uploads/user/494/988131_100.jpg?t=1419303093000",iv_img);
 
    loader.displayimage("http://static.oschina.net/uploads/user/494/988131_100.jpg?t=1419303093000", iv_img, new imageloadinglistener() {
      @override
      public void onloadingstarted(string s, view view) {
        log.i("info","加载开始");
 
      }
 
      @override
      public void onloadingfailed(string s, view view, failreason failreason) {
        log.i("info","加载失败");
 
      }
 
      @override
      public void onloadingcomplete(string s, view view, bitmap bitmap) {
        log.i("info","加载完毕");
 
      }
 
      @override
      public void onloadingcancelled(string s, view view) {
        log.i("info","加载取消");
 
      }
    });
  }
}

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网