android imageview 设置网络图片,ImageView加载网络图片
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加载网络图片相关推荐
- Android 通过开源框架实现加载网络图片并下载到SD卡通知系统相册显示,(并实现分享图片功能)
首先看下本 demo实现的功能 1:实现网络图片的加载显示 2:点击图片底部弹出popupwindow 3:点击分享 实现单个图片分享到:微信,朋友圈,QQ,QQ控件(调用系统) 4:点击下载 实现图 ...
- Android开发之异步任务加载网络图片并存储在sdcard中(源代码分享)
在MainActivity中的代码 package com.example.f02_sdcard02;import android.os.AsyncTask; import android.os.Bu ...
- android studio 加载图片,Android Studio 加载网络图片
Android Studio是基于gradle的一个Android开发软件,在引用网络图片的时候需要连接第三方库,这里介绍 引用glide的方法. 一.在github页面搜索glide,点击第一个 二 ...
- android多种方式实现异步加载图片
记得之前做安卓应用时都是在2.2以下的版本,如果在UI线程中进行耗时操作,比如http,socket等 会产生android.os.NetworkOnMainThreadException 如果异步加 ...
- 【转载】一行代码加载网络图片到ImageView——Android Picasso
原文链接:一句代码加载网络图片到ImageView--Android Picasso 注意:此处使用下面代码需要先配置一下gradle,下载所需包. 具体操作如下图: compile 'com.sq ...
- ImageView加载网络图片
使用第三方的库Glide加载网络图片 首先去下载一个glide的包 下载地址:https://github.com/bumptech/glide/releases/download/v4.7.0/gl ...
- Android Volley完全解析2:使用Volley加载网络图片
原文链接:http://blog.csdn.net/guolin_blog/article/details/17482165,CSDN 郭霖 在上一篇文章中,我们了解了Volley到底是什么,以及它的 ...
- Android开发笔记(一百七十一)使用Glide加载网络图片
如何方便而又快速地显示网络图片,一直是安卓网络编程的热门课题,前些年图片缓存框架Picasso.Fresco等等大行其道,以至于谷歌按捺不住也开发了自己的Glide开源库.由于Android本身就是谷 ...
- android 图片加载 软引用_Android 异步加载网络图片并缓存到本地 软引用 学习分享(转)...
迪 王. 于 星期四, 20/02/2014 - 21:36 提交 在android应用开发的时候,加载网络图片是一个非常重要的部分,很多图片不可能放在本地,所以就必须要从服务器或者网络读取图片. 软 ...
最新文章
- ASp.net 剖析三层架构
- 20个数据库设计的最佳实践
- java ssh客户端_简单的Java SSH客户端
- 自学python编程基础科学计算_Python基础与科学计算常用方法
- linux中split分割文件打开方式,Linux使用split对文件进行切分和合并的方法
- javascript实现silverlight pivotViewer控件
- 我不是九爷 带你了解 ansible
- Unity3D播放背景音乐
- jquery prop('checked', true)解决attr('checked', true)不能选中radio问题
- [大数据之Spark]——Transformations转换入门经典实例
- Atitit 判断判断一张图片是否包含另一张小图片
- 30个Python小游戏,上班摸鱼我能玩一天【内附源码】
- 一级计算机第65套题,全国计算机一级考试题库(附答案).pdf
- 阿里大数据面试题集合:Hadoop+HBase+Spark+Zookeeper
- 青海大学的计算机专业排名,青海大学王牌专业有哪些及专业排名
- linux学习教程-硬盘介绍和磁盘管理v11
- Jugglefest
- 利用Java求解“鸡兔同笼问题”:鸡和兔在一个笼子里,共有腿100条,头40个,问鸡兔各有几只?
- HTML网页设计与制作:电影网站设计——电影泰坦尼克号(4页) HTML+CSS+JavaScript
- Linux——Bash Shell脚本 for循环
热门文章
- openfoam安装中出现allmake error_如何更新OpenFOAM的版本?
- mysql镜像远程连接_docker 创建mysql镜像,并成功进行远程连接
- 给定数组A []和数字X,请检查A []中是否有对X | 使用两个指针算法,O(1)空间复杂度| 套装2...
- c ++向量库_在C ++中对2D向量进行排序
- ORACLE删除当前用户下所有的表的方法
- ORA-00997: 非法使用 LONG 数据类型
- 虹软安卓人脸识别初学
- Vmware虚拟机的安装和使用
- Bootstrap模态框居中显示
- linux arm ffmpeg configure文件,ffmpeg库的交叉编译记录