» 首頁 » 討論區 » Android程式設計 »listview圖片

listview圖片

發表人: 訪客
發表時間: 2011-10-06 16:37:49
這是LISTVIEW顯示圖片和文字的語法
String[] mStrings = new String[] {"a","b","c"};
int[] mPics=new int[]{R.drawable.a_icon ,R.drawable.b_icon ,R.drawable.c_icon };
我已經能夠顯示本機端的圖片和文字在LISTVIEW
想請問的是
int[] mPics=new int[]{R.drawable.a_icon ,R.drawable.b_icon ,R.drawable.c_icon };
改成網路的圖片
http://localhost/android/a.jpg
http://localhost/android/b.jpg
http://localhost/android/c.jpg
要怎麼做
發表人: Seachaos
積分: 2432
發表時間: 2011-10-06 21:55:51
Hi:
你ListView的Adapert是自已寫的嗎?
是的話可以參考以下語法來做修改

[sea:javaCode]
URL url = new URL("http://www.myandroid.tw/style/images/logo.png");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
InputStream is = con.getInputStream();
imageView.setImageBitmap(BitmapFactory.decodeStream(is));
[/sea]
以上是從網路抓圖片到ImageView顯示的簡單範例
發表人: 訪客
發表時間: 2011-10-27 11:34:42
你好

我的意思是說

如何把他寫到int陣列裡呢?
發表人: Seachaos
積分: 2432
發表時間: 2011-10-27 14:42:43
int陣列只能放int
因為Resource的id也是int,所以R.draw...也可以放進去
但現在你要放網路上的圖片的話就不行了
一定要換個型態 (如 String或 Bitmap)
發表人: 訪客
發表時間: 2011-11-06 22:36:45
for(int i = 0;i < 5;i++) {
HashMap[String, Object] map = new HashMap[String, Object]();
map.put("ImageItem", icons[i]);
map.put("PlayerItem",EPlayer[i]);
ListTextImageItemEast.add(map);
}

SAE = new SimpleAdapter(this, List,R.layout.list,
new String[]{"ImageItem","PlayerItem"},
new int[] {R.id.icon,R.id.name});

icons[i]這個本來是int

請問大大你的意思是說用
ImageView 嗎


ImageView icons = new ImageView ??
發表人: Seachaos
積分: 2432
發表時間: 2011-11-08 01:30:11
是的,你可以把他換成ImageView或是Bitmap
但你的SimpleAdapter要注意一下
因為SimpleAdapter預設是不會處理Bitmap或ImageView

以下是SimpleAdapter處理Bitmap的方法

[sea:javaCode]
// 重寫 ViewBinder 讓 Bitmap可以設定在ImageView上
adapter.setViewBinder(new ViewBinder() {
@Override
public boolean setViewValue(View view, Object data,
String textRepresentation) {
// 檢查是否是ImageView和Bitamp
if ((view instanceof ImageView) & (data instanceof Bitmap)) {
ImageView iv = (ImageView) view;
Bitmap bm = (Bitmap) data;
iv.setImageBitmap(bm);
return true;
}
return false;
}
});
[/sea]