Android Volley是Android平台上很好用的第三方开源网络通信框架。使用简答,功能强大。

Android Volley的库jar包Volley.ja下载连接地址:Volley下载

下载后解压的volley.jar直接添加到项目的libs中就可以使用

使用代码如下:

activity_main.xml:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.zzw.testvolley.MainActivity" > <TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scrollbars="vertical"
android:singleLine="false"
android:text="@string/hello_world" /> <ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" /> </LinearLayout>

activity_main.xml

MainActivity.java:

 package com.zzw.testvolley;

 import com.android.volley.RequestQueue;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.ImageRequest;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley; import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = (TextView) findViewById(R.id.textView);
//设置下拉
textView.setMovementMethod(ScrollingMovementMethod.getInstance()); ImageView imageView = (ImageView) findViewById(R.id.imageView); useVolleyGetString("http://www.cnblogs.com/zzw1994", textView);
useVolleyGetImage("http://pic.cnblogs.com/avatar/822717/20151120000857.png", imageView); } private void useVolleyGetString(String url, TextView textView) { final TextView mTextView = textView; // 第一步,得到Volley请求
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext()); // 第二步,得到StringRequest
StringRequest stringRequest = new StringRequest(url, new Listener<String>() {
// 请求成功后返回的数据设置
@Override
public void onResponse(String response) {
mTextView.setText(response);
}
}, new ErrorListener() {
// 请求失败后返回的数据设置
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "加载失败", 1).show();
}
}); // 第三步,添加到requestQueue
requestQueue.add(stringRequest);
} /*
* 加载图片建议使用Glide
* Glide:http://www.cnblogs.com/zzw1994/p/4978312.html
*/ private void useVolleyGetImage(String url, ImageView imageView) { final ImageView mImageView = imageView; // 第一步,得到Volley请求
RequestQueue requestQuene = Volley.newRequestQueue(getApplicationContext()); // 第二步,得到ImageRequest
ImageRequest imageRequest = new ImageRequest(url,
// 请求成功后返回的数据设置
new Listener<Bitmap>() {
@Override
public void onResponse(Bitmap response) {
mImageView.setImageBitmap(response);
}
}, 0, 0, Config.RGB_565, new ErrorListener() {
// 请求失败后返回的数据设置
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "加载失败", 1).show();
}
}); // 第三步,添加到requestQuene
requestQuene.add(imageRequest);
}
}

最后不要忘记在AndroidManifest.xml中添加权限:

 <uses-permission android:name="android.permission.INTERNET" />

Android Volley的技术文档主页:https://developer.android.com/training/volley/index.html
Android Volley的开源代码库官方主页:https://android.googlesource.com/platform/frameworks/volley

强大的网络通信框架(实现缓存)--第三方开源--volley的更多相关文章

  1. 强大的网络通信框架(不实现缓存)--第三方开源--AsyncHttpClient

    AsyncHttpClient是一款比较流行的Android异步网路加载库,在github上的网址是:https://github.com/loopj/android-async-http但是Asyn ...

  2. 图片加载与缓存利器(自动缓存)--第三方开源-- Glide

    Android Glide使用便利,短短几行简单明晰的代码,即可完成大多数图片从网络(或者本地)加载.显示的功能需求. 使用Android Glide,需要先下载Android Glide的库,And ...

  3. IOS-常用第三方开源框架介绍

    iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 时间:2015-05-06 16:43:34      阅读:533      评论:0      收藏:0      [点我收藏+] ...

  4. iOS开发-常用第三方开源框架介绍

    iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser        实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...

  5. iOS常用第三方开源框架和优秀开发者博客等

    博客收藏iOS开发过程好的开源框架.开源项目.Xcode工具插件.Mac软件.文章等,会不断更新维护,希望对你们有帮助.如果有推荐或者建议,请到此处提交推荐或者联系我. 该文档已提交GitHub,点击 ...

  6. 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发

    [原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文  http: ...

  7. 【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位网友补充完善

    链接地址:http://www.tuicool.com/articles/jyA3MrU 时间 2015-01-05 10:08:18  我是程序猿,我为自己代言 原文  http://blog.cs ...

  8. Core第三方开源Web框架

    NET Core第三方开源Web框架YOYOFx   YOYOFx框架 YOYOFx是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台. 本着学习的态度,造了这个 ...

  9. Android-Volley网络通信框架(二次封装数据请求和图片请求(包含处理请求队列和图片缓存))

    1.回想 上篇 使用 Volley 的 JsonObjectRequest 和 ImageLoader 写了 电影列表的样例 2.重点 (1)封装Volley 内部 请求 类(请求队列,数据请求,图片 ...

随机推荐

  1. HYSBZ 1036 【树链剖分】

    思路: 裸裸的树链剖分.... 树链剖分就是把一棵树分成若干重链和轻链...然后保证形成的线段树上每条链是连续存储的.然后这样就能用线段树进行维护了. 但是每次一定要保证是在同一条链里边....思路就 ...

  2. memcpy、memmove、memset

    void * memcpy(void * dst, const void * src, size_t count) { void *res=dst; while (count--) { *(char* ...

  3. 为什么需要auto_ptr_ref

    这几天开始拜读侯捷先生和孟岩先生的译作<C++标准程序库:自修教程与参考手册> .两位先生确实译功上乘,读得很顺.但是读到P55页关于auto_ptr_ref的讨论,却百思不得其解:为什么 ...

  4. html5—— 应用程序缓存

    使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本. 什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这 ...

  5. SparseArray,dip & px

    SparseArray-用Array的方式实现Integer-Object的map 优:节约内存,因为避免了装箱/拆箱,数据结构不依赖Entry 劣:速度不及HashMap dip.px dip(de ...

  6. HDU 4597 Play Game 记忆化DP

    Play Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Proble ...

  7. Debian的一个命令

    dpkg是一个Debian的一个命令行工具,它可以用来安装.删除.构建和管理Debian的软件包.下面是它的一些命令解释:1)安装软件命令行:dpkg -i <.deb file name> ...

  8. git从入门到精通

    1.git简介 由Linus在2005年花了两周时间完成,也就是开发Linux系统的大神研制. git特点: 自由和开放源码 隐形备份 安全 不需要强大的硬件 更简单的分支 对文件操作容易 2.文件操 ...

  9. gis 导出 dwg,shp

    当我们在webgis 想要把某个地块或者多个地块导出dwg或者shp文件的时候怎么办?这个时候最好就是用后台的方式.首先把web gis上的graphic 的polygon提取为坐标的形式(类似于x, ...

  10. 获取oracle 里的表名与字段

    --数据库表名 SELECT distinct A.OBJECT_NAME as TAB_NAME,B.comments as DESCR FROM USER_OBJECTS A , USER_TAB ...