版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载,违者必究。 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】把默认项目配置信息添加到我们自己的项目中完成配置,调用