欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

ImageView加载网络图片,,android网络加载图

来源: javaer 分享于  点击 38419 次 点评:4

ImageView加载网络图片,,android网络加载图


android网络加载图片框架Android-Universal-Image-Loader功能非常强大,其开源地址https://github.com/nostra13/Android-Universal-Image-Loader,讲解非常地详细,今天我要贴下工作中用到的利用这个框架加载网络图片并在ImageView控件中显示出来。 第一步当然是把相应的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>());@Overridepublic 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) {        ...    }});

更多的可以看源码!

相关栏目:

用户点评