Volley的使用

package com.example.myvolley;

import org.json.JSONObject;

import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v4.util.LruCache;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.widget.ImageView;
import android.widget.TextView;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
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;
/**
 * volley Android網絡通信框架 更快、更簡單、更健壯
 * volley 提供的功能:
 * 1.JSON、圖片(異步)
 * 2.網絡請求的排序
 * 3.網絡請求的優先級處理
 * 4.緩存處理
 * 5.多級別的取消請求
 * 6.與activity生命週期聯動
 */
public class MainActivity extends ActionBarActivity {

	
	private NetworkImageView imageView;
	private TextView textView;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
//		textView = (TextView) findViewById(R.id.textview);
//		requestJSONVolley();
		imageView = (NetworkImageView) findViewById(R.id.iv);
		requestImageForNetworkImageView();
	}
	/**
	 * 異步加載圖片,使用NetWorkImageView
	 */
	
	public void requestImageForNetworkImageView(){
		RequestQueue requestQueue  = Volley.newRequestQueue(this);
		String drawableUrl = "http://g.hiphotos.baidu.com/image/pic/item/e850352ac65c103835a202cbb0119313b17e89df.jpg";
		final LruCache<String, Bitmap> lrucache = new LruCache<String, Bitmap>(20);
		ImageCache imageCache = new ImageCache() {
			
			@Override
			public void putBitmap(String url, Bitmap bitmap) {
				lrucache.put(url, bitmap);
			}
			
			@Override
			public Bitmap getBitmap(String url) {
				return lrucache.get(url);
			}
		};
		ImageLoader imageLoader = new ImageLoader(requestQueue, imageCache);
		imageView.setTag("url");
		imageView.setImageUrl(drawableUrl, imageLoader);
	}
	/**
	 * 使用Volley異步加載圖片
	 */
	public void requestImage(){
		RequestQueue requestQueue  = Volley.newRequestQueue(this);
		String drawableUrl = "http://g.hiphotos.baidu.com/image/pic/item/e850352ac65c103835a202cbb0119313b17e89df.jpg";
		final LruCache<String, Bitmap> lrucache = new LruCache<String, Bitmap>(20);
		ImageCache imageCache = new ImageCache() {
			
			@Override
			public void putBitmap(String url, Bitmap bitmap) {
				lrucache.put(url, bitmap);
			}
			
			@Override
			public Bitmap getBitmap(String url) {
				return lrucache.get(url);
			}
		};
		
		ImageLoader imageLoader = new ImageLoader(requestQueue, imageCache);
		ImageListener imageListener = imageLoader.getImageListener(imageView, R.drawable.ic_launcher, R.drawable.ic_launcher);
		imageLoader.get(drawableUrl, imageListener);
	}
	/**
	 * 使用volley請求json字符串
	 */
	public  void requestJSONVolley(){
		RequestQueue requestQueue = Volley.newRequestQueue(this);
		String getJsonUrl = "http://www.wwtliu.com/jsondata.html";
		JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, getJsonUrl, null, 
				new Response.Listener<JSONObject>() {

					@Override
					public void onResponse(JSONObject response) {
						Log.v("TAG", "response = "+response);
						textView.setText(response.toString());
					}
			
		}, new Response.ErrorListener() {

			@Override
			public void onErrorResponse(VolleyError error) {
				Log.v("TAG", "error = "+error);
			}
			
		});
		requestQueue.add(jsonObjectRequest);
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章