Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。

Volley提供的功能:

  • JSON,图像等的异步下载;
  • 网络请求的排序(scheduling)
  • 网络请求的优先级处理
  • 缓存
  • 多级别取消请求
  • 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)

如何使用:将原项目打成jar包直接复制到libs就可以使用。关键是如何将源程序打成jar包。

1:首先,从git库先克隆一个下来:

git clone https://android.googlesource.com/platform/frameworks/volley  

2:将volley编译成jar包:(我的是Win7+ADT开发环境)

(1)下载 ant (http://ant.apache.org/),下载之后将其解压到随便一盘如  C:\apache-ant-1.9.2

(2)配置环境系统变量:

新建系统变量:

Android 网络通信框架Volley的简单使用_第1张图片

编辑Path:加入%ANT_HOME%\bin;

(3)测试以下:

Android 网络通信框架Volley的简单使用_第2张图片

表示成功!

3:执行以下命令进行操作:

如果执行 android update project -p . 提示命令不存在,这时需要将G:\AndroidADT\adt-bundle-windows-x86-20130219\sdk\tools 加入系统变量。

Android 网络通信框架Volley的简单使用_第3张图片

解决方法如下:

Android 网络通信框架Volley的简单使用_第4张图片

在这里我的系统中存在俩个虚拟机,在这里我选择第一个进行操作:

Android 网络通信框架Volley的简单使用_第5张图片

使用ant进行打jar包:

Android 网络通信框架Volley的简单使用_第6张图片

jar 包存在 \bin\目录下面。

==================简单案例

(1)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" >    <com.android.volley.toolbox.NetworkImageView         android:id="@+id/networkImageView"         android:layout_width="120dip"         android:layout_height="120dip"         android:layout_marginTop="30dip"         />      <ImageView         android:id="@+id/imageView"         android:layout_width="120dip"         android:layout_height="120dip"         />     <ScrollView          android:layout_width="match_parent"         android:layout_height="wrap_content"         android:scrollbars="vertical">         <TextView              android:id="@+id/tvShowInfo"             android:layout_width="wrap_content"             android:layout_height="wrap_content"/>    </ScrollView></LinearLayout>

(2)MainActivity.java

package com.example.volleytest;import com.android.volley.Request.Method;import com.android.volley.RequestQueue;import com.android.volley.Response.Listener;import com.android.volley.toolbox.ImageLoader;import com.android.volley.toolbox.ImageLoader.ImageCache;import com.android.volley.toolbox.ImageLoader.ImageListener;import com.android.volley.toolbox.JsonObjectRequest;import com.android.volley.toolbox.NetworkImageView;import com.android.volley.toolbox.Volley;import android.os.Bundle;import android.support.v4.util.LruCache;import android.widget.ImageView;import android.widget.TextView;import android.app.Activity;import android.app.ProgressDialog;import android.graphics.Bitmap;public class MainActivity extends Activity {    private TextView tvShowInfo=null;    private ImageView mImageView = null;     private NetworkImageView mNetworkImageView = null;     @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);            init();                getJSONByVolley();        loadImageByVolley();         showImageByNetworkImageView();     }    private void init(){        tvShowInfo = (TextView)findViewById(R.id.tvShowInfo);        mImageView = (ImageView)findViewById(R.id.imageView);        mNetworkImageView = (NetworkImageView)findViewById(R.id.networkImageView);            }        private void getJSONByVolley(){        RequestQueue requestQueue = Volley.newRequestQueue(this);         String url = "http://pipes.yahooapis.com/pipes/pipe.run?_id=giWz8Vc33BG6rQEQo_NLYQ&_render=json";         final ProgressDialog progressDialog = ProgressDialog.show(this, "This is title", "...Loading...");                 requestQueue.add(new JsonObjectRequest(Method.GET,url,null,                new Listener(){                    @Override                    public void onResponse(Object arg0) {                        tvShowInfo.setText(arg0.toString());                        progressDialog.dismiss();                    }                },null));                requestQueue.start();    }        private void showImageByNetworkImageView() {        String imageUrl="http://avatar.csdn.net/6/6/D/1_lfdfhl.jpg";         RequestQueue requestQueue = Volley.newRequestQueue(this);                 final LruCache<String,Bitmap> lruCache = new LruCache<String,Bitmap>(20);        ImageCache imageCache = new ImageCache(){            @Override              public void putBitmap(String key, Bitmap value) {                  lruCache.put(key, value);              }                           @Override              public Bitmap getBitmap(String key) {                  return lruCache.get(key);              }         };                ImageLoader imageLoader = new ImageLoader(requestQueue, imageCache);         mNetworkImageView.setTag("url");        mNetworkImageView.setImageUrl(imageUrl, imageLoader);    }        private void loadImageByVolley() {         String imageUrl="http://avatar.csdn.net/6/6/D/1_lfdfhl.jpg";          RequestQueue requestQueue = Volley.newRequestQueue(this);          final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>(20);          ImageCache imageCache = new ImageCache() {              @Override              public void putBitmap(String key, Bitmap value) {                  lruCache.put(key, value);              }                           @Override              public Bitmap getBitmap(String key) {                  return lruCache.get(key);              }         };          ImageLoader imageLoader = new ImageLoader(requestQueue, imageCache);          ImageListener listener = ImageLoader.getImageListener(mImageView, R.drawable.ic_launcher,R.drawable.ic_launcher);          imageLoader.get(imageUrl, listener);     }}

更多相关文章

  1. Android开源框架Afinal第一篇——揭开圣女的面纱
  2. Android 单元测试框架
  3. Android--项目框架介绍
  4. android动态加载jar包中的图片
  5. Android的路由框架用法
  6. MVVMArchitecture,一款可配置的 MVVM 框架
  7. 基于android Material Design基础框架搭建
  8. Android学习之自定义控件之图片带文字的View

随机推荐

  1. 在桌面chrome中调试android设备中的web页
  2. Linux基础 for Android
  3. Qt5.3 For Andoid 安装过程
  4. Ubuntu下安装配置Android(安卓)SDK
  5. AndEngine 分析之八------Texture
  6. "Copy" did not complete normally. Plea
  7. osg for android 学习之十一:从3dmax导出o
  8. ViewFlipper 中文文档
  9. android动画之通过子线程来实现动画
  10. setBackgroundDrawable和setBackgroundRe