ImageView加载网络图片
2018-07-20 来源:open-open
第一步当然是把相应的jar包导入到我们的项目中去,
第二步就是配置ImageLoader参数,
第三步就是直接使用。
private ImageLoader imageLoader;
private ImageLoadingListener animateFirstListener;//这个监听主要是监听加载过程中的各状态
private DisplayImageOptions options;//图片展示配置
获取ImageLoader对象很简单,就一句话:
imageLoader = ImageLoader.getInstance();
然后配置options:
options = new DisplayImageOptions.Builder() .showImageOnLoading(R.drawable.icon_default_avater) //加载中的默认图片 .showImageForEmptyUri(R.drawable.icon_default_avater) // 加载错误的默认图片 .showImageOnFail(R.drawable.icon_default_avater) // 加载失败时的默认图片 .cacheInMemory(true)// 开启内存缓存 .cacheOnDisk(true) // 开启硬盘缓存 .resetViewBeforeLoading(false).build();
第一种加载方式(参数uri:图片所在地址,imageView:显示图片的对应控件ImageVeiw,options:就是刚刚我们配置的参数):
ImageLoader.getInstance().displayImage(String uri, ImageView imageView, DisplayImageOptions options);
第二种方式:
我们设置animateFirstListener,利用animateFirstListener来加载图片:
自定义图片缓存:
class MyDisplayListener 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); } } } }
然后取得:
animateFirstListener = new MyDisplayListener ();//
加载图片(参数uri:图片所在地址,imageView:显示图片的对应控件ImageVeiw):
imageLoader.displayImage(uri, imageView, animateFirstListener);
开源框架中的ImageLoader类中定义了多种加载网络图片的方式:
如github介绍中的:
imageLoader.displayImage(imageUri, imageView, options, 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) { ... } @Override public void onLoadingCancelled(String imageUri, View view) { ... } }, new ImageLoadingProgressListener() { @Override public void onProgressUpdate(String imageUri, View view, int current, int total) { ... } });
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇:Android开发工具类