你的位置:首页 > 操作系统

[操作系统]强大的网络通信框架


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

Android Volley的库jar包Volley.jar放出来供大家下载使用,下载连接地址:Volley下载

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

使用代码如下:

activity_main.

 1 <LinearLayout ="http://schemas.android.com/apk/res/android" 2   ="http://schemas.android.com/tools" 3   android:layout_width="match_parent" 4   android:layout_height="match_parent" 5   android:orientation="vertical" 6   tools:context="com.zzw.testvolley.MainActivity" > 7  8   <TextView 9     android:id="@+id/textView"10     android:layout_width="match_parent"11     android:layout_height="wrap_content"12     android:layout_weight="1"13     android:scrollbars="vertical"14     android:singleLine="false"15     android:text="@string/hello_world" />16 17   <ImageView18     android:id="@+id/imageView"19     android:layout_width="match_parent"20     android:layout_height="wrap_content"21     android:layout_weight="1" />22 23 </LinearLayout>

activity_main.

MainActivity.java:

 1 package com.zzw.testvolley; 2  3 import com.android.volley.RequestQueue; 4 import com.android.volley.Response.ErrorListener; 5 import com.android.volley.Response.Listener; 6 import com.android.volley.VolleyError; 7 import com.android.volley.toolbox.ImageRequest; 8 import com.android.volley.toolbox.StringRequest; 9 import com.android.volley.toolbox.Volley;10 11 import android.app.Activity;12 import android.graphics.Bitmap;13 import android.graphics.Bitmap.Config;14 import android.os.Bundle;15 import android.text.method.ScrollingMovementMethod;16 import android.view.Menu;17 import android.view.MenuItem;18 import android.widget.ImageView;19 import android.widget.TextView;20 import android.widget.Toast;21 22 public class MainActivity extends Activity {23 24   @Override25   protected void onCreate(Bundle savedInstanceState) {26     super.onCreate(savedInstanceState);27     setContentView(R.layout.activity_main);28     TextView textView = (TextView) findViewById(R.id.textView);29     //设置下拉30     textView.setMovementMethod(ScrollingMovementMethod.getInstance());31 32     ImageView imageView = (ImageView) findViewById(R.id.imageView);33 34     useVolleyGetString("http://www.cnblogs.com/zzw1994", textView);35     useVolleyGetImage("http://pic.cnblogs.com/avatar/822717/20151120000857.png", imageView);36 37   }38 39   private void useVolleyGetString(String url, TextView textView) {40 41     final TextView mTextView = textView;42 43     // 第一步,得到Volley请求44     RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());45 46     // 第二步,得到StringRequest47     StringRequest stringRequest = new StringRequest(url, new Listener<String>() {48       // 请求成功后返回的数据设置49       @Override50       public void onResponse(String response) {51         mTextView.setText(response);52       }53     }, new ErrorListener() {54       // 请求失败后返回的数据设置55       @Override56       public void onErrorResponse(VolleyError error) {57         Toast.makeText(getApplicationContext(), "加载失败", 1).show();58       }59     });60 61     // 第三步,添加到requestQueue62     requestQueue.add(stringRequest);63   }64 65   /*66    * 加载图片建议使用Glide 67    * Glide:http://www.cnblogs.com/zzw1994/p/4978312.html68   */69 70   private void useVolleyGetImage(String url, ImageView imageView) {71 72     final ImageView mImageView = imageView;73 74     // 第一步,得到Volley请求75     RequestQueue requestQuene = Volley.newRequestQueue(getApplicationContext());76 77     // 第二步,得到ImageRequest78     ImageRequest imageRequest = new ImageRequest(url,79         // 请求成功后返回的数据设置80         new Listener<Bitmap>() {81           @Override82           public void onResponse(Bitmap response) {83             mImageView.setImageBitmap(response);84           }85         }, 0, 0, Config.RGB_565, new ErrorListener() {86           // 请求失败后返回的数据设置87           @Override88           public void onErrorResponse(VolleyError error) {89             Toast.makeText(getApplicationContext(), "加载失败", 1).show();90           }91         });92 93     // 第三步,添加到requestQuene94     requestQuene.add(imageRequest);95   }96 }

最后不要忘记在AndroidManifest.

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