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 或 ...
随机推荐
- JVM中堆内存和栈内存的区别
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间 ...
- JavaScript 方法调用模式和函数调用模式
这两天在读<JavaScript语言精粹>关于第4章函数调用的几种模式琢磨了半天. 这里就说一下方法调用模式跟函数调用模式. 方法调用模式: 当一个函数被保存为对象的一个属性时,我们称它为 ...
- oracle备份脚本
利用EXP导出全库,必须用SYSTEM或者DBA用户来导出. 具体脚本实现如下 全库导出(fullbackup): #!/bin/bash bname=`date +%Y%m%d` cd /backu ...
- while循环学习之统计流量
/application/apache/logs/bbs-access_log日志文件中任意一行的格式如下,以空格为间隔第十列(2632)为此次请求内容的字节数大小 192.168.220.1 - - ...
- Linux中的sed命令
sed - stream editor for filtering and transforming text 流编辑器的过滤和转换文本 sed [-nerf] [动作] 参数: -i 修改源文件 危 ...
- [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum
[敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum 1,Scrum概述 上篇中提到敏捷开发有两种主流的方法,一个是XP,另一个是Scrum,本篇简要介绍Scrum方法.Scrum是 ...
- 数据库DDL操作
DDL1. 数据库* 查看所有数据库:SHOW DATABASES* 切换(选择要操作的)数据库:USE 数据库名* 创建数据库:CREATE DATABASE [IF NOT EXISTS] myd ...
- centos 6.5 搭建JSP运行环境
一.安装nginx yum install nginx #安装nginx,根据提示,输入Y安装即可成功安装 service nginx start #启动 chkconfig nginx on #设为 ...
- C# 调用CMD执行命令行
这几天用c#做了一个项目,其中一个功能是要把生成的临时文件隐藏,同时,不能在屏幕上有调用CMD的痕迹,这里生成的临时文件的绝对路径为delfile为文件的绝对路径, 代码如下: private voi ...
- POPTEST老李分享session,cookie的安全性以及区别 2
四,session和cookie谁更安全 就个人而言,我觉得session更安全一点,我以下几点看法. 1,如果session和cookie一样安全的话,二者就没有并要同时存在了,只要cookie就好 ...