NetWorkImageView:

Volley提供的图像组件,其父类是ImageView,在里面可以通过url处理获取的图像及请求的生命周期。

添加到布局中:

<com.android.volley.toolbox.NetworkImageViewandroid:id="@+id/netimg_ex"android:layout_width="wrap_content"android:layout_height="wrap_content" ></com.android.volley.toolbox.NetworkImageView>

实例:

RequestQueue queue = null;queue = Volley.newRequestQueue(this);NetworkImageView img = (NetworkImageView) findViewById(R.id.netimg_ex);ImageLruCache imagecache = new ImageLruCache();ImageLoader loader = new ImageLoader(queue, imagecache);// 默认图片img.setDefaultImageResId(R.drawable.ic_launcher);// 错误图片img.setErrorImageResId(R.drawable.ic_launcher);img.setImageUrl("http://img10.3lian.com/c1/newpic/10/08/22.jpg", loader);

自定义的缓存类:

public class ImageLruCache implements ImageCache {private LruCache<String, Bitmap> mCache;public ImageLruCache() {int maxSize = 10 * 1024 * 1024;mCache = new LruCache<String, Bitmap>(maxSize) {@Overrideprotected int sizeOf(String key, Bitmap value) {return value.getRowBytes() * value.getHeight();}};}@Overridepublic Bitmap getBitmap(String arg0) {// TODO Auto-generated method stubreturn mCache.get(arg0);}@Overridepublic void putBitmap(String arg0, Bitmap arg1) {// TODO Auto-generated method stubmCache.put(arg0, arg1);}}

ViewHolder中使用NetWorkImageView:

public class ImageAdp extends BaseAdapter {private Context context;private List<String> urls;private ImageLoader loader;public ImageAdp(Context context, List<String> urls) {this.context = context;this.urls = urls;RequestQueue queue = Volley.newRequestQueue(context);loader = new ImageLoader(queue, new ImageLruCache());}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn urls.size();}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn arg0;}@Overridepublic long getItemId(int arg0) {// TODO Auto-generated method stubreturn arg0;}@Overridepublic View getView(int posi, View conView, ViewGroup arg2) {// TODO Auto-generated method stubViewHolder holder;if (null == conView) {holder = new ViewHolder();conView = LayoutInflater.from(context).inflate(R.layout.line_img,null);holder.img = (NetworkImageView) conView.findViewById(R.id.img_net);holder.img.setDefaultImageResId(R.drawable.ic_launcher);holder.img.setErrorImageResId(R.drawable.ic_launcher);conView.setTag(holder);} else {holder = (ViewHolder) conView.getTag();}holder.img.setImageUrl(urls.get(posi), loader);return conView;}private static class ViewHolder {private NetworkImageView img;}
}

2.ImageView:

其实跟上面的差不多。

RequestQueue queue = null;queue = Volley.newRequestQueue(this);ImageView img = (ImageView) findViewById(R.id.netimg_ex);ImageLruCache imagecache = new ImageLruCache();ImageLoader loader = new ImageLoader(queue, imagecache);ImageListener listener = ImageLoader.getImageListener(img,R.drawable.ic_launcher, R.drawable.ic_launcher);loader.get("http://img10.3lian.com/c1/newpic/10/08/22.jpg", listener);

ViewHolder中使ImageView:

public class ImageAdp extends BaseAdapter {private Context context;private List<String> urls;private ImageLoader loader;public ImageAdp(Context context, List<String> urls) {this.context = context;this.urls = urls;RequestQueue queue = Volley.newRequestQueue(context);loader = new ImageLoader(queue, new ImageLruCache());}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn urls.size();}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn arg0;}@Overridepublic long getItemId(int arg0) {// TODO Auto-generated method stubreturn arg0;}@Overridepublic View getView(int posi, View conView, ViewGroup arg2) {// TODO Auto-generated method stubViewHolder holder;if (null == conView) {holder = new ViewHolder();conView = LayoutInflater.from(context).inflate(R.layout.line_img,null);holder.img = (ImageView) conView.findViewById(R.id.img_net);conView.setTag(holder);} else {holder = (ViewHolder) conView.getTag();}ImageListener listener = ImageLoader.getImageListener(holder.img,R.drawable.ic_launcher, R.drawable.ic_launcher);loader.get(urls.get(posi), listener);return conView;}private static class ViewHolder {private ImageView img;}
}

Volley简介(二)相关推荐

  1. 详细解读Volley(二)—— ImageRequest Request简介

    上篇文章我们讲到了如何用volley进行简单的网络请求,我们可以很容易的接受到string.JsonObjec类型的返回结果,之前的例子仅仅是一次请求,这里需要说明volley本身就是适合高并发的,所 ...

  2. TiDB 简介(二)

    参考:TiDB 简介_福海鑫森的博客-CSDN博客_tidb开发语言 TiDB 简介 | PingCAP Docs TiDB 是 PingCAP 公司自主设计.研发的开源分布式关系型数据库,是一款同时 ...

  3. 单元测试及NUnit测试框架简介(二)

    一.单元测试框架的选择 在选择单元测试框架时,可以从以下几个方面去考虑: 支持自动检测注册用例:框架能否支持简单地构造用例并自动注册测试用例到测试框架中: 支持测试Fixture:即是否支持为一组测试 ...

  4. PP模块快速入门之功能简介(二)

    根据以下任何一个随机模型进行预测:平均移动 ,指数平滑常数模型 ,指数平滑趋势模型 ,指数平滑季节性模型 ,组合趋势/指数平滑季节性模型 R/3可以用最适用分析来自动地选择随机模型,你也可以人工选择模 ...

  5. Android 网络通信框架Volley简介(Google IO 2013)

    Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v= ...

  6. web API简介(二):客户端储存之document.cookie API

    概述 前篇:web API简介(一):API,Ajax和Fetch 客户端储存从某一方面来说和动态网站差不多.动态网站是用服务端来储存数据,而客户端储存是用客户端来储存数据.document.cook ...

  7. 【FFmpeg】FFmpeg 相关术语简介 二

    文章目录 一.码率与帧率 二.ffmpeg.ffplay.ffprobe 可执行文件 一.码率与帧率 帧率 : 帧频率 , 视频中每秒钟含有视频帧的帧数 , 一秒钟刷新多少张图像 , 连续移动的图像至 ...

  8. GCD简介二:多核心的性能

    一.概念 为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术.在低层,GCD全局dispatch queue仅仅是工作线程池的抽象.这些队列中的Block一旦可用,就会被dispatch到工 ...

  9. 网站开发综合技术 一 JavaScript简介 二JavaScript语法

    第1部分 JavaScript简介 1.JavaScript它是个什么东西? 它是个脚本语言,需要有宿主文件,他的宿主文件是html文件. 2.它与Java有什么关系? 没有什么直接联系,java是S ...

最新文章

  1. 关于运行ssm,web请求出现HTTP415错误
  2. 堆排序——HeapSort
  3. 【快乐水题】575. 分糖果
  4. BUPT 2012复试机考 4T
  5. B Graph(异或最小生成树)
  6. echo回声不能用了_已懂得用电子分频器,为何不继续加个效果器让音响效果更好?...
  7. SRAM和SDRAM的区别
  8. Linux 之 编译器 gcc/g++参数详解
  9. java怎么导出有模板的表格_java用模板导出数据表格-Go语言中文社区
  10. Apollo添加新的can通信接口的GPS设备
  11. swoole学习之: MQTT (物联网) 服务器
  12. r 对一列计数_根据另一列对项目进行计数
  13. 辨大势定内局,解析新时代下的企业新刚需
  14. Word论文格式-页眉页脚页码
  15. 技术支持程序员程序书写规范
  16. KVM是什么 机柜 机架服务器 怎么用
  17. Bonobo基于.NET-Git服务器
  18. python matplotlib绘制 3D图像专题 (三维柱状图、曲面图、散点图、曲线图合集)
  19. NB-IoT 设备实时反向控制方案分析
  20. 1948-2006:哈佛大学地理系的灭亡与地理学的重生

热门文章

  1. STC89C52RC的寄存器
  2. Linux驱动的开发与移值——为Tiny210加入AC97驱动Wm9713
  3. [英语阅读]温室效应能阻止冰川期到来吗
  4. 中星睿典职称计算机考试,大纲教材 - 中星睿典 - 全国职称计算机考试|职称计算机考试模块|全国职称计算机考试试题...
  5. BeanShell遍历JSON双重嵌入数组获取数组数据
  6. 马云:每一个企业都应有自己的官方微博
  7. OpenLayers学习笔记高级篇(一、openlayers画点线面)
  8. 如何找回误删除的微信好友?这五种方法简单有效
  9. 【智能制造】汽车智能制造技术应用及智能工厂案例
  10. 开源背后 | 面对端侧推理引擎的挑战,阿里工程师如何应对?