Volley使用指南
在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Google I/O 2013上,Volley发布了。Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。
视频:http://www.youtube.com/watch?v=y(需要翻墙)优酷:http://v.youku.com/v_show/id_XNTU4ODgzNjg4.html
Volley提供的功能
简单来说,它提供了如下的便利功能:
- Volley automatically schedule all network requests. It means that Volley will be taking care of all the network requests your app executes for fetching response or image from web.
- Volley provides transparent disk and memory caching.
- Volley provides powerful cancellation request API. It means that you can cancel a single request or you can set blocks or scopes of requests to cancel.
- Volley provides powerful customization abilities.
- Volley provides Debugging and tracing tools
从git库先克隆一个下来:git clone https://android.googlesource.com/platform/frameworks/volley

将volley引入工程即可
http请求
RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());
String url = "https://api.instagram.com/v1/media/popular?client_id=e8e3eb77fcab4830947fed8677eeb6cd"; JsonObjectRequest jsonRequet = new JsonObjectRequest(Method.GET, url,
null, new Listener<JSONObject>() {
public void onResponse(JSONObject result) {
Log.i(TAG, "请求成功"+result); }
}, new Response.ErrorListener() {
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "请求失败");
}
});
jsonRequet.setTag(TAG);
mQueue.add(jsonRequet);
ImageView设置图片
RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());
imageview = (ImageView) findViewById(R.id.imageview);
mImageLoader = new ImageLoader(mQueue, new ImageCache() {
private final LruCache<String, Bitmap> mCache = new LruCache<String, Bitmap>( 10 * 1024 * 1024){
@Override
protected int sizeOf(String key, Bitmap value) {
return value.getRowBytes() * value.getHeight();
}
};
public void putBitmap(String url, Bitmap bitmap) {
mCache.put(url, bitmap);
}
public Bitmap getBitmap(String url) {
return mCache.get(url);
}
});
String imageUrl="http://h.hiphotos.baidu.com/pic/w%3D230/sign=cec1af55a044ad342ebf8084e0a30c08/f11f3a292df5e0fec6c784b95d6034a85fdf72ae.jpg";
ImageListener listener = ImageLoader.getImageListener(imageview, android.R.drawable.ic_menu_rotate, android.R.drawable.ic_delete);
mImageLoader.get(imageUrl, listener);
使用NetworkImageView
Volley提供了一个新的控件NetworkImageView来代替传统的ImageView,这个控件的图片属性可以通过setImageUrl方法来设置网络图片
RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());
imageview = (NetworkImageView) findViewById(R.id.imageview);
mImageLoader = new ImageLoader(mQueue, new ImageCache() {
private final LruCache<String, Bitmap> mCache = new LruCache<String, Bitmap>( 10 * 1024 * 1024){
@Override
protected int sizeOf(String key, Bitmap value) {
return value.getRowBytes() * value.getHeight();
}
};
public void putBitmap(String url, Bitmap bitmap) {
mCache.put(url, bitmap);
}
public Bitmap getBitmap(String url) {
return mCache.get(url);
}
});
String imageUrl="http://h.hiphotos.baidu.com/pic/w%3D230/sign=cec1af55a044ad342ebf8084e0a30c08/f11f3a292df5e0fec6c784b95d6034a85fdf72ae.jpg"; imageview.setImageUrl(imageUrl, mImageLoader);
定制自己的Request
https://gist.github.com/ficusk/5474673
http://blog.csdn.net/t12x3456/article/details/9221611
http://blog.csdn.net/geekpark/article/details/9380933
http://stackoverflow.com/questions/16626032/volley-post-get-parameters
http://stackoverflow.com/questions/17571759/looking-for-a-documentation-for-the-android-volley-api
(文档)http://files.evancharlton.com/volley-docs/
Volley使用指南的更多相关文章
- Volley使用指南第三回(来自developer.android)
继第二篇之后,再来Volley使用的教程的第三篇,有些翻译我是根据自己的理解,可能有错误的地方,还请多多包涵. 标准请求 这一回课将会告诉你Volley能够完成的3种请求类型 1.StringReqe ...
- Volley使用指南第一回(来自developer.android)
最近闲来想看看android网络方面的东西.google在2013年发布了一个叫做Volley的网络请求框架,我看了一下官网,居然在training里面就有教程.首先,英文的东西看着 还是挺不爽的,特 ...
- Volley使用指南第四回(来自developer.android)
Volley网络请求的第四篇,废话不多说,开始. 这一篇文章将会教你怎样在Volley支持的范围内定制一个请求. 第一步:写一个通用请求: 大多数请求都有已经写好的接口供你调用,如果你的请求是Stri ...
- Volley使用指南第二回(来自developer.android)
上一篇文章翻译了一下google的Volley官方文档,讲到了最基本的发送request.这一次我们来下一回:创建一个自定义RequestQueue. 这篇文章将会教你一步一步创建自己的Request ...
- Android最佳实践指南
Updated on 2016/1/6 修正了一些翻译段落欢迎转载,但请保留译者链接:http://www.jianshu.com/p/613d28a3c8a0 Lessons learned fro ...
- RxVolley使用文档 —— RxVolley = Volley + RxJava + OkHttp
RxVolley使用文档 -- RxVolley = Volley + RxJava + OkHttp 偶然有幸,看到这个框架,便深深的爱上了这个框架,赶紧转载一发到自己的博客上温故而知新,而且作者一 ...
- Android RxVolley = Volley + RxJava + OkHttp
Github:https://github.com/kymjs/RxVolley RxVolley使用文档 V1.0:http://rxvolley.mydoc.io/ 一.RxVolley使用指南 ...
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- UE4新手之编程指南
虚幻引擎4为程序员提供了两套工具集,可共同使用来加速开发的工作流程. 新的游戏类.Slate和Canvas用户接口元素以及编辑器功能可以使用C++语言来编写,并且在使用Visual Studio 或 ...
随机推荐
- 内网转发ngrok的使用
1.下载解压ngrok:https://ngrok.com/download 2.执行ngrok会打开控制台 3.输入命令,开始映射本地的8080端口 ngork http 8080 控制台会返回一个 ...
- Windows:将cmd命令行添加到右键中方法
win10中将命令行cmd添加到右键的方法 Windows cmd 右键 win10 命令行 最近在学python,所以会用到很多库文件,但是有的库文件需要下载whl文件再通过cmd进行安装,所以每次 ...
- strtol函数 将字符串转换为相应进制的整数
转自http://hi.baidu.com/qwpsmile/blog/item/9bc44efa4f41018a9f514637.html +----------------+| strt ...
- Unity3D Layer要点
简介 Layer可以用于光照的分层和物理碰撞的分层,这样可以很好地进行性能优化 数据结构 Layer在Unity中有3中呈现方式:1.string名字,2.int层索引 ...
- jQuery Ajax 实例 全解析(转)
1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (String) : 请求的HTML页的URL地址. data (M ...
- 读书笔记 effective c++ Item 42 理解typename的两种意义
1. class和typename意义相同的例子 问题:在下面的模板声明中class和typename的区别是什么? template<class T> class Widget; // ...
- 记一次synchronized锁字符串引发的坑兼再谈Java字符串
问题描述 业务有一个需求,我把问题描述一下: 通过代理IP访问国外某网站N,每个IP对应一个固定的网站N的COOKIE,COOKIE有失效时间.并发下,取IP是有一定策略的,取到IP之后拿IP对应的C ...
- 【 Android】自定义的AlertDialog中的EditText无法调用输入法问题解决
1.问题描述: 在自定义的AlertDialog 中添加了EditText组件,但运行时怎么点EditText都无法调出软键盘: 2.原因分析: 一开始我以为EditText的focus属性没有设置好 ...
- Redis基础学习(二)—数据类型
一.Redis支持的数据类型 Redis中存储数据是通过key-value存储的,对于value的类型有以下几种: (1)字符串. (2)Map (3)List (4)Set public cla ...
- Centos7部署Zabbix
转载于http://www.cnblogs.com/xqzt/p/5124894.html,更正了部分错误,并增加了个别问题处理办法. 一.Zabbix简介 zabbix是一个基于WEB界面的提供分布 ...