MainActivity如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
package
cc.testvolley;
import
org.json.JSONObject;
import
android.app.Activity;
import
android.app.ProgressDialog;
import
android.graphics.Bitmap;
import
android.os.Bundle;
import
android.support.v4.util.LruCache;
import
android.widget.ImageView;
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;
/**
* Demo描述:
* 1 利用Volley获取JSON数据
* 2 利用Volley异步加载图片
* 1 利用NetworkImageView加载网路图片
*
* 参考资料:
* 1 http://blog.csdn.net/t12x3456/article/details/9221611
* 2 http://blog.csdn.net/xyz_lmn/article/details/12063561
* 3 http://blog.csdn.net/lfdfhl/article/details/12221875
* Thank you very much
*/
public
class
MainActivity
extends
Activity {
private
ImageView mImageView;
private
NetworkImageView mNetworkImageView;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private
void
init(){
mImageView=(ImageView) findViewById(R.id.imageView);
mNetworkImageView=(NetworkImageView)findViewById(R.id.networkImageView);
getJSONByVolley();
loadImageByVolley();
showImageByNetworkImageView();
}
/**
* 利用Volley获取JSON数据
*/
private
void
getJSONByVolley() {
RequestQueue requestQueue = Volley.newRequestQueue(
this
);
String JSONDataUrl =
"http://pipes.yahooapis.com/pipes/pipe.run?_id=giWz8Vc33BG6rQEQo_NLYQ&_render=json"
;
final
ProgressDialog progressDialog = ProgressDialog.show(
this
,
"This is title"
,
"...Loading..."
);
JsonObjectRequest jsonObjectRequest =
new
JsonObjectRequest(
Request.Method.GET,
JSONDataUrl,
null
,
new
Response.Listener<JSONObject>() {
@Override
public
void
onResponse(JSONObject response) {
System.out.println(
"response="
+response);
if
(progressDialog.isShowing()&&progressDialog!=
null
) {
progressDialog.dismiss();
}
}
},
new
Response.ErrorListener() {
@Override
public
void
onErrorResponse(VolleyError arg0) {
System.out.println(
"sorry,Error"
);
}
});
requestQueue.add(jsonObjectRequest);
}
/**
* 利用Volley异步加载图片
*
* 注意方法参数:
* getImageListener(ImageView view, int defaultImageResId, int errorImageResId)
* 第一个参数:显示图片的ImageView
* 第二个参数:默认显示的图片资源
* 第三个参数:加载错误时显示的图片资源
*/
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);
}
/**
* 利用NetworkImageView显示网络图片
*/
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);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<
RelativeLayout
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"
>
<
com.android.volley.toolbox.NetworkImageView
android:id
=
"@+id/networkImageView"
android:layout_width
=
"120dip"
android:layout_height
=
"120dip"
android:layout_centerHorizontal
=
"true"
android:layout_marginTop
=
"30dip"
/>
<
ImageView
android:id
=
"@+id/imageView"
android:layout_width
=
"120dip"
android:layout_height
=
"120dip"
android:layout_centerInParent
=
"true"
/>
</
RelativeLayout
>
|