Android开发中,载入网络server的图片是非经常常使用的。当然我们能够自己写server接口去实现,只是要做到server性能

优越的话,开发起来比較麻烦点。所以本博客要介绍Volley框架进行网络图片载入的demo!

Volley框架集成了

AsyncHttpClient和Universal-Image-Loader的长处。开发起来很的方便了。并且性能也不错!

我们能够去下载Volley.jar,这个是我在网上找的:点击打开链接

能够去下载这个我在网上找的哦!

注意:这些网络请求的。首先都要开启权限,我们打开AndroidManifest.xml

然后定义一个全局变量Context context;

增加代码:

       <!-- 配置网络连接须要的属性 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

方法一:通过ImageRequest,进行载入

 public void imageRequest(){
context = this;
imageView = (ImageView)findViewById(R.id.imageView1);
//创建一个RequestQueue对象
RequestQueue requestQueue = Volley.newRequestQueue(context); //创建ImageRequest对象
ImageRequest imageRequest = new ImageRequest(
"http://c.csdnimg.cn/public/favicon.ico",//url
new Response.Listener<Bitmap>() {//监听器Listener
@Override
public void onResponse(Bitmap response) {
imageView.setImageBitmap(response);
}
//參数3、4表示图片宽高,Bitmap.Config.ARGB_8888表示图片每一个像素占领4个字节大小
}, 0, 0, Config.ARGB_8888, new Response.ErrorListener() {//图片载入请求失败的回调Listener
@Override
public void onErrorResponse(VolleyError error) {
imageView.setImageResource(R.drawable.ic_normal_pic);
}
});
//将ImageRequest载入到Queue
requestQueue.add(imageRequest);
}

方法二:通过ImageLoader。进行载入

介绍一下imageLoader,imageLoader不是继承ImageRequest。不是内部实现还是通过ImageRequest的,

ImageLoader来实现的优点是能够过滤反复的url,这样就提高了性能

 public void imageLoad(){
context = this;
imageView = (ImageView)findViewById(R.id.imageView1);
//创建一个RequestQueue对象
RequestQueue requestQueue = Volley.newRequestQueue(context);
//创建一个ImageLoader
ImageLoader imageLoader = new ImageLoader(requestQueue, new ImageCache() {
@Override
public void putBitmap(String url, Bitmap bitmap) {
} @Override
public Bitmap getBitmap(String url) {
return null;
}
}); //ImageListener
ImageListener listener = ImageLoader.getImageListener(imageView,
R.drawable.ic_normal_pic, R.drawable.ic_normal_pic); //url、listener、maxWidth、maxHeight
imageLoader.get("http://c.csdnimg.cn/public/favicon.ico", listener, 200, 200); }

方法三:通过NetworkImageLoader

继承自ImageView的。具备ImageView控件的全部功能,而且在原生的基础之上增加了载入网络图片的功能。也就是

Volley框架提供的View

  public void networkImageLoad(){
context = this; //创建一个RequestQueue对象
RequestQueue requestQueue = Volley.newRequestQueue(context);
//创建一个ImageLoader
ImageLoader imageLoader = new ImageLoader(requestQueue, new ImageCache() {
@Override
public void putBitmap(String url, Bitmap bitmap) {
} @Override
public Bitmap getBitmap(String url) {
return null;
}
});
//NetworkImageView
networkImageView = (NetworkImageView) findViewById(R.id.network_image_view); networkImageView.setDefaultImageResId(R.drawable.ic_normal_pic);
networkImageView.setErrorImageResId(R.drawable.ic_normal_pic);
//设置url和ImageLoader对象
networkImageView.setImageUrl("http://c.csdnimg.cn/public/favicon.ico",
imageLoader);
}

Layout:

 <com.android.volley.toolbox.NetworkImageView
android:id="@+id/network_image_view"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center_horizontal"
/>

Demo代码下载:点击打开链接




Volley框架载入网络图片的更多相关文章

  1. Android开发利用Volley框架下载和缓存网络图片

    2013年Google I/O大会上推出了一种新的网络通信框架——Volley,Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可 ...

  2. Android批量图片载入经典系列——Volley框架实现多布局的新闻列表

    一.问题描写叙述 Volley是Google 2013年公布的实现Android平台上的网络通信库,主要提供网络通信和图片下载的解决方式,比方曾经从网上下载图片的步骤可能是这种流程: 在ListAda ...

  3. Android Volley入门到精通:使用Volley加载网络图片

    在上一篇文章中,我们了解了Volley到底是什么,以及它的基本用法.本篇文章中我们即将学习关于Volley更加高级的用法,如何你还没有看过我的上一篇文章的话,建议先去阅读Android Volley完 ...

  4. Android 学习笔记之Volley(八)实现网络图片的数据加载

    PS:最后一篇关于Volley框架的博客... 学习内容: 1.使用ImageRequest.java实现网络图片加载 2.使用ImageLoader.java实现网络图片加载 3.使用NetWork ...

  5. Android Volley框架的使用(三)

     此博文源码下载地址  https://github.com/Javen205/VolleyDemo.git Image Request 为了更方便的使用Volley中的图片请求,我们同样先在Voll ...

  6. Android网络通信Volley框架源代码浅析(三)

    尊重原创 http://write.blog.csdn.net/postedit/26002961 通过前面浅析(一)和浅析(二)的分析.相信大家对于Volley有了初步的认识,可是假设想更深入的理解 ...

  7. 安卓高级2 Volley框架的使用案例

    初始化类: MyApp.java package qianfeng.com.day37_volley_pull.app; import android.app.Application; import ...

  8. 使用Volley框架中的ImageLoader来异步的加载图片

    Volley框架在请求网络图片方面也做了很多工作,提供了好几种方法.本文介绍使用ImageLoader来进行网络图片的加载.ImageLoader的内部使用ImageRequest来实现,它的构造器可 ...

  9. Android Volley完全解析(二),使用Volley加载网络图片

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17482165 在上一篇文章中,我们了解了Volley到底是什么,以及它的基本用法. ...

随机推荐

  1. datalist、repearter、gridview显示行号的三种方法 或者是获取datalist行id

    原文发布时间为:2009-05-06 -- 来源于本人的百度文章 [由搬家工具导入] 1. if you are using SQL Server, try select identity(int,1 ...

  2. Android开发跳坑记录

    本文主要记录在Android开发中遇见的一些问题,以及解决方法. 2015.12.01 1.adb.exe 端口被占用 解决: http://blog.csdn.net/xiaanming/artic ...

  3. soc与cpu区别

    soc(System on Chip)片上系统cpu只包括运算器和控制器.早期 的系统是指在PCB上有cpu和Nand控制器,LCD控制器之类的控制器,构成一个系统. cpu和这些控制器之间用pcb板 ...

  4. 自定义的类型放入STL的set中,需要重载自定义类中的“<”符号(转)

    在以前学习STL的时候,曾经学到过,如果要将自定义的类型放入到set中的话,就需要重载“<”符号,原因是set是一个有序的集合,集合会按照“<”比较的大小,默认按照从小到大的顺序排列.假设 ...

  5. vim的语法高亮及配置文件说明

    本文主要针对那些刚刚入门的菜鸟,老手请自动忽略,谢谢. 一.安装vim: sudo pacman -S vim 随后根据提示输入超级用户密码即可完成安装 二.配置自己的语法高亮文件,主要是修改-/.v ...

  6. Chrome扩展修改页面代码执行环境的方法

    Chrome的扩展程序可以通过content scripts向页面中注入js代码,所注入的js代码能够对页面中所有的DOM对象进行操作.由于Chrome在js执行环境上对页面代码和content sc ...

  7. Javascript中递归的调用

    递归函数就是调用自身,如下所示: function factorial(num){ if(num<=1){ return 1; }else{ return num*factorial(num-1 ...

  8. hdu 2824(欧拉函数)

    The Euler function Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  9. 正确地使用GIT FORK

    摘自github官方网站,稍后我将抽空翻译. Fork a repo https://help.github.com/articles/fork-a-repo/ Syncing a fork http ...

  10. Oracle并发控制、事务管理学习笔记

    (a)基本概念 锁的2种最基本.最简单的类型:排他锁(eXclusive lock,即X锁).共享锁(Share lock,即S锁). 不同级别的锁定协议及其作用: 申请的锁 及其作用 锁定协议 修改 ...