ImageLoader显示图片案例

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载,违者必究。 https://blog.csdn.net/Cricket_7/article/details/89021965

1,实现效果

  • 图片缓存

 

2,实现逻辑

【1】项目上关联library

 

【2】 显示imageview

  • //1,图片加载的URL地址     2,要加载的控件    3,空参构造配置的信息    4,实现的动画效果

ImageLoader.getInstance().displayImage("Http://192.168.137.1:8080/pic/1.jpg", imageView, options, animateFirstListener);
  • 进行配置信息

  options = new DisplayImageOptions.Builder()

               .showImageOnLoading(R.drawable.ic_stub)           //显示加载过程中的图片

               .showImageForEmptyUri(R.drawable.ic_empty)      //当下载链接为空的时候显示的图片

               .showImageOnFail(R.drawable.ic_error)           //下载失败的时候显示的图片

               .cacheInMemory(true)            //是否要做内存缓存

               .cacheOnDisk(true)          //是否要做本地(磁盘)缓存

               .considerExifParams(true)       //是否支持图片翻转

//                .displayer(new CircleBitmapDisplayer(Color.WHITE, 5)) //将图片剪切成带圆环的图片,圆环的厚度为5dp

               .displayer(new RoundedBitmapDisplayer(6)) //给矩形添加圆角

               .build();

创建动画监听

  •  
private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener();
  • 动画显示效果

private static class AnimateFirstDisplayListener extends SimpleImageLoadingListener {

   static final List<String> displayedImages = Collections.synchronizedList(new LinkedList<String>());

   @Override

   public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {

       if (loadedImage != null) {

           ImageView imageView = (ImageView) view;

           boolean firstDisplay = !displayedImages.contains(imageUri);

           if (firstDisplay) {

               //淡入效实现

               FadeInBitmapDisplayer.animate(imageView, 500);

               displayedImages.add(imageUri);

           }

       }

   }

}
  • 淡出动画

public static void animate(View imageView, int durationMillis) {

  if (imageView != null) {

     AlphaAnimation fadeImage = new AlphaAnimation(0, 1);

     fadeImage.setDuration(durationMillis);

     fadeImage.setInterpolator(new DecelerateInterpolator());

     imageView.startAnimation(fadeImage);

  }

}

 

【3】进行操作后报错,报错信息, 说没有配置完成,我们打开Demo ,发现Application中还进行了配置信息

  • Application  中进行配置信息


 

public static void initImageLoader(Context context) {

   // This configuration tuning is custom. You can tune every option, you may tune some of them,

   // or you can create default configuration by

   //  ImageLoaderConfiguration.createDefault(this);

   // method.

   ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguration.Builder(context);

   config.threadPriority(Thread.NORM_PRIORITY - 2);

   config.denyCacheImageMultipleSizesInMemory();

   config.diskCacheFileNameGenerator(new Md5FileNameGenerator());

   config.diskCacheSize(50 * 1024 * 1024); // 50 MiB

   config.tasksProcessingOrder(QueueProcessingType.LIFO);

   config.writeDebugLogs(); // Remove for release app

   // Initialize ImageLoader with configuration.

   ImageLoader.getInstance().init(config.build());

   }

 

  • 默认配置信息

  ImageLoaderConfiguration aDefault = ImageLoaderConfiguration.createDefault(context);

       ImageLoader.getInstance().init(aDefault);



【4】把默认项目配置信息添加到我们自己的项目中完成配置,调用

 

 

猜你喜欢

转载自blog.csdn.net/Cricket_7/article/details/89021965
0条评论
添加一条新回复