ImageLoader 加载图片

     目前Andorid主流的图片处理库框架之一,在Anroid图片处理中需要考虑的问题很多,例如OOM、图片缓存和网络图片加载、多线程问题及图片压缩处理等等负责的问题。但是Universal-imageLoader以及帮我们把这些问题处理好了,且对外提供了相应完善的请求API,我们只需要按照要求使用即可。

特点:

  • 支持本地图片和网络图片的多线程异步加载和缓存处理
  • 个性化的配置自己想买的ImagerLoader
  • 图片加载过程的监听回调
  • 自动对加载的托针对当前剩余内存进行裁剪优化,防止OOM
  • 较好的控制图片的加载过程,例如暂停托加载,重新开始加载图片

缺点:

      没有对本地文件压缩处理的相关API方法以及默认都是Src模式设置图片,没有针对BackGround熟悉开发API

 

配置:

  • 可以全局配置:在Application里进行配置
  • 可以针对单一加载图片的地方配置

 

例子:

      

public class MyApplication extends Application {

@SuppressLint("MissingSuperCall")
@Override
public void onCreate() {
initImageLoader();
}

  private void initImageLoader() {
ImageLoaderConfiguration.Builder builder = new ImageLoaderConfiguration.Builder(this);
builder.threadPoolSize(5);
builder.threadPriority(Thread.NORM_PRIORITY - 4);//
builder.diskCacheExtraOptions(600, 400, null);//
builder.memoryCacheExtraOptions(600, 400);//
builder.memoryCache(new UsingFreqLimitedMemoryCache(1024 * 1024 * 10));
builder.diskCacheSize(200 * 1024 * 1024); // 200Mb sd卡(本地)缓存的最大值
builder.diskCacheFileCount(100);
builder.diskCache(new UnlimitedDiskCache(new File(getExternalCacheDir(), "MyMobile")));
builder.imageDownloader(new BaseImageDownloader(this));
builder.writeDebugLogs();//打印日记
builder.diskCacheFileNameGenerator(new Md5FileNameGenerator());
ImageLoaderConfiguration imageLoaderConfiguration = builder.build();
ImageLoader.getInstance().init(imageLoaderConfiguration);
}
}

    public class MainActivity extends Activity {

  private ImageLoader imageLoader;
  public void ...{
   imageLoader = ImageLoader.getInstance();
   imageview=...
   imageLoader.displayImage("https://ss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/image/h%3D300
/sign=edc450837e8b4710d12ffbccf3cfc3b2/b64543a98226cffc49721710b5014a90f603ea3c.jpg", imageview, getSimpleOptions());
  }
  private DisplayImageOptions getSimpleOptions() {
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.assess_delivery_ic) //设置图片在下载期间显示的图片
.showImageForEmptyUri(R.drawable.assess_delivery_ic)//设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.assess_delivery_ic) //设置图片加载/解码过程中错误时候显示的图片
.cacheInMemory(true)//设置下载的图片是否缓存在内存中
.cacheOnDisk(true)//设置下载的图片是否缓存在SD卡中
.imageScaleType(ImageScaleType.IN_SAMPLE_INT)//设置图片以如何的编码方式显示
.bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型
.displayer(new RoundedBitmapDisplayer(10))
.build();//构建完成
return options;
}
}
posted @ 2018-05-29 10:15  风如故  阅读(1217)  评论(0编辑  收藏  举报