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 displayedImages = Collections.synchronizedList(new LinkedList());

@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) {

...

}

}); 更多的可以看源码!

android imageview 设置网络图片,ImageView加载网络图片相关推荐

  1. Android 通过开源框架实现加载网络图片并下载到SD卡通知系统相册显示,(并实现分享图片功能)

    首先看下本 demo实现的功能 1:实现网络图片的加载显示 2:点击图片底部弹出popupwindow 3:点击分享 实现单个图片分享到:微信,朋友圈,QQ,QQ控件(调用系统) 4:点击下载 实现图 ...

  2. Android开发之异步任务加载网络图片并存储在sdcard中(源代码分享)

    在MainActivity中的代码 package com.example.f02_sdcard02;import android.os.AsyncTask; import android.os.Bu ...

  3. android studio 加载图片,Android Studio 加载网络图片

    Android Studio是基于gradle的一个Android开发软件,在引用网络图片的时候需要连接第三方库,这里介绍 引用glide的方法. 一.在github页面搜索glide,点击第一个 二 ...

  4. android多种方式实现异步加载图片

    记得之前做安卓应用时都是在2.2以下的版本,如果在UI线程中进行耗时操作,比如http,socket等 会产生android.os.NetworkOnMainThreadException 如果异步加 ...

  5. 【转载】一行代码加载网络图片到ImageView——Android Picasso

    原文链接:一句代码加载网络图片到ImageView--Android Picasso  注意:此处使用下面代码需要先配置一下gradle,下载所需包. 具体操作如下图: compile 'com.sq ...

  6. ImageView加载网络图片

    使用第三方的库Glide加载网络图片 首先去下载一个glide的包 下载地址:https://github.com/bumptech/glide/releases/download/v4.7.0/gl ...

  7. Android Volley完全解析2:使用Volley加载网络图片

    原文链接:http://blog.csdn.net/guolin_blog/article/details/17482165,CSDN 郭霖 在上一篇文章中,我们了解了Volley到底是什么,以及它的 ...

  8. Android开发笔记(一百七十一)使用Glide加载网络图片

    如何方便而又快速地显示网络图片,一直是安卓网络编程的热门课题,前些年图片缓存框架Picasso.Fresco等等大行其道,以至于谷歌按捺不住也开发了自己的Glide开源库.由于Android本身就是谷 ...

  9. android 图片加载 软引用_Android 异步加载网络图片并缓存到本地 软引用 学习分享(转)...

    迪 王. 于 星期四, 20/02/2014 - 21:36 提交 在android应用开发的时候,加载网络图片是一个非常重要的部分,很多图片不可能放在本地,所以就必须要从服务器或者网络读取图片. 软 ...

最新文章

  1. ASp.net 剖析三层架构
  2. 20个数据库设计的最佳实践
  3. java ssh客户端_简单的Java SSH客户端
  4. 自学python编程基础科学计算_Python基础与科学计算常用方法
  5. linux中split分割文件打开方式,Linux使用split对文件进行切分和合并的方法
  6. javascript实现silverlight pivotViewer控件
  7. 我不是九爷 带你了解 ansible
  8. Unity3D播放背景音乐
  9. jquery prop('checked', true)解决attr('checked', true)不能选中radio问题
  10. [大数据之Spark]——Transformations转换入门经典实例
  11. Atitit 判断判断一张图片是否包含另一张小图片
  12. 30个Python小游戏,上班摸鱼我能玩一天【内附源码】
  13. 一级计算机第65套题,全国计算机一级考试题库(附答案).pdf
  14. 阿里大数据面试题集合:Hadoop+HBase+Spark+Zookeeper
  15. 青海大学的计算机专业排名,青海大学王牌专业有哪些及专业排名
  16. linux学习教程-硬盘介绍和磁盘管理v11
  17. Jugglefest
  18. 利用Java求解“鸡兔同笼问题”:鸡和兔在一个笼子里,共有腿100条,头40个,问鸡兔各有几只?
  19. HTML网页设计与制作:电影网站设计——电影泰坦尼克号(4页) HTML+CSS+JavaScript
  20. Linux——Bash Shell脚本 for循环

热门文章

  1. openfoam安装中出现allmake error_如何更新OpenFOAM的版本?
  2. mysql镜像远程连接_docker 创建mysql镜像,并成功进行远程连接
  3. 给定数组A []和数字X,请检查A []中是否有对X | 使用两个指针算法,O(1)空间复杂度| 套装2...
  4. c ++向量库_在C ++中对2D向量进行排序
  5. ORACLE删除当前用户下所有的表的方法
  6. ORA-00997: 非法使用 LONG 数据类型
  7. 虹软安卓人脸识别初学
  8. Vmware虚拟机的安装和使用
  9. Bootstrap模态框居中显示
  10. linux arm ffmpeg configure文件,ffmpeg库的交叉编译记录