如何用GridView显示得到的网络图片?
先看效果图:
01
02
package yc.get_image;
03
import java.io.BufferedInputStream;
04
import java.io.IOException;
05
import java.io.InputStream;
06
import java.net.URL;
07
import java.net.URLConnection;
08
import android.app.Activity;
09
import android.content.Context;
10
import android.graphics.Bitmap;
11
import android.graphics.BitmapFactory;
12
import android.os.Bundle;
13
import android.view.View;
14
import android.view.ViewGroup;
15
import android.widget.BaseAdapter;
16
import android.widget.GridView;
17
import android.widget.ImageView;
18
/**
19
* 得到网络图片
20
*
21
* @author 叶超
22
*
23
//读取网络图片,注意添加网络权限
24
public class GetTheNetImage extends Activity {
25
private String images[] = {
26
"http://www.qqt6.com/uploads/allimg/100820/1_100820065756_1.jpg",
27
"http://www.qq74.net/upimg/allimg/110113/0135115L5-11.jpg",
28
"http://www.kanfzl.com/article/UploadPic/2010-10/20101013932918.jpg",
29
"http://www.feizl.com/upload2007/2011_05/1105241418527525.jpg",
30
"http://www.oaiqq.com/uploads/allimg/101008/21441229e-15.jpg",
31
"http://www.tombit.cn/news/UploadPic/2010-12/2010122814432671.jpg" };
32
GridView netGridView;
33
@Override
34
public void onCreate(Bundle savedInstanceState) {
35
super.onCreate(savedInstanceState);
36
setContentView(R.layout.main);
37
netGridView = (GridView)findViewById(R.id.gridview);
38
netGridView.setAdapter(new ImagesAdapter(this));
39
// netImage = (ImageView) findViewById(R.id.netImage);
40
// load();
41
}
42
public class ImagesAdapter extends BaseAdapter{
43
private Context mContext;
44
public ImagesAdapter(Context context) {
45
mContext = context;
46
}
47
public int getCount() {
48
return images.length;
49
}
50
public Object getItem(int arg0) {
51
return null;
52
}
53
public long getItemId(int arg0) {
54
return 0;
55
}
56
public View getView(int position, View convertView, ViewGroup parent) {
57
ImageView imageView;
58
// System.out.println(convertView);
59
// if -- else 为了节省内存空间,减少对象的创建
60
if (convertView == null) {
61
imageView = new ImageView(mContext);
62
//设置显示图片的大小
63
imageView.setLayoutParams(new GridView.LayoutParams(200, 200));
64
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
65
imageView.setPadding(0, 0, 0, 0);
66
} else {
67
imageView = (ImageView) convertView;
68
}
69
try {
70
URL aURL = new URL(images[position]);
71
URLConnection con = aURL.openConnection();
72
con.connect();
73
InputStream is = con.getInputStream();
74
/* 建立缓冲区是一个良好的编程习惯. */
75
BufferedInputStream bis = new BufferedInputStream(is);
76
/* 解析网络上的图片 */
77
Bitmap bm = BitmapFactory.decodeStream(bis);
78
imageView.setImageBitmap(bm);
79
bis.close();
80
is.close();
81
/* 这时图片已经被加载到ImageView中. */
82
} catch (IOException e) {
83
e.printStackTrace();
84
}
85
return imageView;
86
}
87
}
88
}