2012-03-08 34 views
0

我一直在嘗試加載我的圖像網址到第一個必須下載的列表視圖可以有人請幫助我。顯示多個圖像使用他們的URL與JSON列表視圖

HashMap<String, String> map = new HashMap<String, String>(); 
map.put("id", String.valueOf(i)); 
map.put("name", "House name:" + json_data.getString("name")); 
map.put("address", "Adress: " + json_data.getString("address")); 

URL newurl = new URL(json_data.getString("imageUrl")); 
itmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(result).getContent()); 
ImageView imagy = (ImageView)findViewById(R.id.image); 
imagy.setImageBitmap(bitmap); 
    map.put("img",bitmap);//error is here says convert bitmap to type string 
    mylist.add(map); 
+0

錯誤還挺說,你的問題是什麼:你試圖把一個'Bitmap'對象到'的HashMap '對象。 – fayerth 2012-03-08 05:44:45

回答

1

你在做什麼這個代碼?

URL newurl = new URL(json_data.getString("imageUrl")); 
      Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(result).getContent()); 
      ImageView imagy = (ImageView)findViewById(R.id.image); 
       imagy.setImageBitmap(bitmap); 
      map.put("img",bitmap);//error is here says convert bitmap to type string 

      mylist.add(map); 

因爲你正在做findViewById()和每次設置圖像的位圖。然後你加入mylist。

建議: 相反,我會建議你只URL字符串添加到HashMap中:

String strImageURL = json_data.getString("imageUrl"); 
map.put("img",strImageURL);/ 

雖然定義自定義適配器爲您的ListView,只是做你是在getView內完成以上工作( )您的自定義適配器的方法(您可以通過擴展BaseAdapter來定義)。

建議2: 如果你想實現內部的ListView圖像的延遲加載,然後檢查費多爾的回答在這裏給出:Android - How do I do a lazy load of images in ListView

+0

問題是費多爾的只處理靜態圖像和我的dynamic.His mstrings(靜態列表)時,我與我的IMAGEURL替換[I](我從JSON獲取)不工作,每一個細節與圖像相關聯,還我有問題。 – user1207576 2012-03-08 11:39:29

+0

他他他....相反,你也可以傳遞你的數組到自定義適配器。您只需查看示例和ImageLoader類的用法。 – 2012-03-08 12:55:12

1

我希望,烏拉圭回合的實際HashMasp是 HashMap的地圖=新的HashMap();

如果是這樣,你只能添加字符串值。 嘗試以下,

class House { 
    int id; 
    String houseName; 
    String houseAddress; 
    Bitmap image; 
} 

List<House> houseList = new ArrayList<House>(); 

House houseObj = new House(); 

houseObj.id = i; 
houseObj.houseName = "House name:" + json_data.getString("name"); 
houseObj.address = "Adress: " + json_data.getString("address"); 

URL newurl = new URL(json_data.getString("imageUrl")); 
Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(result).getContent()); 
ImageView imagy = (ImageView)findViewById(R.id.image); 
imagy.setImageBitmap(bitmap); 

houseObj.image = bitmap; 

houseList.add(houseObj); 

使用這個列表中的ListView烏爾適配器。

+0

謝謝,我明白你的意思了。 – user1207576 2012-03-08 11:31:57

+0

嘿非常感謝mannn !!!你救了我的一天......如果可能,我會給予+10,對不起,我只能給+1 :-) – Shrikant 2012-08-15 17:25:42