您的位置:首页 > 移动开发 > Android开发

android Gallery实现加载网络图片      

2013-03-14 16:06 423 查看
核心提示:其实很简单,Gallery 里设置 setAdapter() 里面添加图片的资源,android 获取网络图片显示在Gallery中,这需要继承BaseAdapter 重写里面的函数,值得一提的是需要写一个xml< ?xml version="1.0" encoding="utf-8

其实很简单,Gallery 里设置 setAdapter() 里面添加图片的资源,这需要继承BaseAdapter 重写里面的函数,值得一提的是需要写一个xml。在res/values下建立attrs.xml

< ?xml version="1.0" encoding="utf-8"?>
< resources>
< declare-styleable name="Gallery">
< attr name="android:galleryItemBackground" />
< /declare-styleable>
< /resources>
主要代码:
private Gallery myGallery01;
/* 图片资源 */
private String[] myImageURL = new String[]
{
"http://www.chinajilin.com.cn/att/site1/20071116/"
+ "img-1196620280651.jpg",
"http://image.szonline.net/UploadFile/album/2010/7/71315/2/"
+ "20100702111104_64763.jpg",
"http://www.fzl020.com/uploads/userup/0904/"
+ "30031RI2U.jpg",
"http://lh6.ggpht.com/_2N-HvtdpHZY/SZ357lAfZNE/AAAAAAAABOE/"
+ "dfxBtdINgPA/s144-c/20090220.jpg",
"http://news.xinhuanet.com/travel/2008-03/18/"
+ "xin_0620305181402218149794.jpg" };
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myGallery01 = (Gallery) findViewById(R.id.myGallery01);
myGallery01.setAdapter(new myInternetGalleryAdapter(this));
}
/* BaseAdapter */
public class myInternetGalleryAdapter extends BaseAdapter
{
private Context myContext;
private int mGalleryItemBackground;
/* 构造函数 Context */
public myInternetGalleryAdapter(Context c)
{
this.myContext = c;
// 检索 这方面的主题风格的属性
TypedArray a = myContext
.obtainStyledAttributes(R.styleable.Gallery);
//得到资源标识
mGalleryItem a.getResourceId(R.styleable.Gallery_android_galleryItemBackground, 0);
// 返回 TypedArray
a.recycle();
}
/* */
public int getCount()
{
return myImageURL.length;
}
/* ID */
public Object getItem(int position)
{
return position;
}
public long getItemId(int position)
{
return position;
}
/* */
public float getScale(boolean focused, int offset)
{
/* Formula: 1 / (2 ^ offset) */
return Math.max(0, 1.0f / (float) Math.pow(2, Math
.abs(offset)));
}
public View getView(int position, View convertView,
ViewGroup parent)
{
/* ImageView */
ImageView imageView = new ImageView(this.myContext);
try
{
URL aryURI = new URL(myImageURL[position]);
/* 打开连接 */
URLConnection conn = aryURI.openConnection();
conn.connect();
/* 转变为 InputStream */
InputStream is = conn.getInputStream();
/* 将InputStream转变为Bitmap */
Bitmap bm = BitmapFactory.decodeStream(is);
/* 关闭InputStream */
is.close();
/*添加图片*/
imageView.setImageBitmap(bm);
} catch (IOException e)
{
e.printStackTrace();
}
// 填充ImageView
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
/* 设置布局参数*/
imageView.setLayoutParams(new Gallery.LayoutParams(200, 150));
/* 设置背景资源 */
imageView.setBackgroundResource(mGalleryItemBackground);
return imageView;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息