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);
}
}
Volley的使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.