图片加载框架

来源:互联网 发布:it 知乎 编辑:程序博客网 时间:2024/03/29 05:49

Android-Universal-Image-Loader:异步加载图片框架

主要有三个组件,ImageLoader主要负责具体的下载、缓存、显示,需要重写displayImage()或loadImage(),一般重写displayImage()。

ImageLoader.getInstance().displayImage(item.getPicUrl(), holder.imageView, new ImageLoadingListener() {   @Override   public void onLoadingStarted(String imageUri, View view) {   }   @Override   public void onLoadingFailed(String imageUri, View view,                        FailReason failReason) {   }   @Override   public void onLoadingComplete(String imageUri, View view,                          Bitmap loadedImage) {      if (loadedImage == null) {         loadedImage = ((BitmapDrawable) getResources().getDrawable(R.drawable.group_calendar_default_bg)).getBitmap();      }      holder.imageView.setImageBitmap(loadedImage);   }   @Override   public void onLoadingCancelled(String imageUri, View view) {   }});

DisplayImageOptions是指导ImageLoader根据网络状态对图片的显示设置,是否缓存到磁盘,下载后如何处理等等。

mOptions = new DisplayImageOptions.Builder().cacheInMemory(true).cacheOnDisk(true).considerExifParams(true).bitmapConfig(Bitmap.Config.RGB_565).build();
ImageLoaderConfiguration是对图片缓存的配置等。

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)        .threadPriority(Thread.NORM_PRIORITY - 2)        .denyCacheImageMultipleSizesInMemory()        .diskCacheFileNameGenerator(new Md5FileNameGenerator())        .tasksProcessingOrder(QueueProcessingType.LIFO)        .defaultDisplayImageOptions(options)        .build();

0 0