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

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

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

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

使用代码如下:

activity_main.xml:



    

    



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() {
            // 请求成功后返回的数据设置
            @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() {
                    @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中添加权限:

1 

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




你可能感兴趣的:(android)