2012-01-04 74 views
0

那麼,我一直在試圖從Web插入圖像到ListView中。當我使用可繪製文件的圖像時,插入「R.drawable.paris(foto文件名)」,一切都會好起來。但是,當我嘗試使用Bitmap對象時,圖像只是不顯示在屏幕上。任何人都可以告訴我我做錯了什麼?如何將位圖插入到HashMap中

public class TesHashBitActivity extends Activity { 
    /** Called when the activity is first created. */ 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.main); 


     ListView listCities = (ListView)findViewById(R.id.citylist); 

     Bitmap photo = BitmapFactory.decodeResource(getResources(), R.drawable.img1); 
     ImageView img = (ImageView)findViewById(R.id.imagedisplay); 
     img.setImageBitmap(photo); 

     ArrayList<HashMap<String, Object>> citiesmap = new ArrayList<HashMap<String, Object>>(); 

     HashMap<String, Object> citmap = new HashMap<String, Object>(); 

     citmap.put("Photo", photo); 
     citmap.put("Nation", "France"); 
     citiesmap.add(citmap); 


     SimpleAdapter sadapt = new SimpleAdapter(this, citiesmap, R.layout.lines, new String[] {"Photo","Nation"}, new int[] {R.id.photoimg,R.id.contentline}); 

     listCities.setAdapter(sadapt); 
     } 
} 
+0

只是出於好奇,你爲什麼不在你的Hashmap中使用位圖?你爲什麼使用Object?另外,我很確定SimpleAdapter不需要ArrayList,它需要一個常規Array。 – 2012-01-04 18:13:50

+0

因爲我打算在Listview中添加更多數據。實際上,該代碼只是新應用程序的一部分。 – Javanes 2012-01-04 19:14:19

+0

你能解決這個問題嗎?如果是的話請寫回答。 – Sagar 2012-07-09 10:01:45

回答

1

您還沒有正確理解的ListView ...

看看這個教程...

http://www.vogella.de/articles/AndroidListView/article.html

你清楚缺少的事情是你如何定義查看列表視圖用作其模板(用於顯示單個元素)。你不能把它扔到一張圖像列表中,並把它畫出來。您需要爲其提供一個View模板,它將反覆重複使用,然後爲其提供適當的值以填充到這些視圖中。在上例中,查找R.layout.rowlayout。這就是他解釋如何使用自定義視圖作爲列表元素的地方。

歡迎來到Stack! :)不要忘記標記正確的答案,並提出那些你認爲最有用的答案。

+0

嗨Dr.Dredel。那麼,實際上我爲ListView設置了一個View。 XML文件非常簡單,只是一個TextView和一個Imageview。這是有效的,因爲當我使用「drawable.R.id.img1」作爲參數而不是照片對象時,這是完美的。問題是將一個Bitmap對象插入到Hashmap中。這是新聞應用程序的一部分,所以我需要從Web獲取圖像。 – Javanes 2012-01-04 19:20:14

+0

在將位圖插入散列圖中不存在「問題」,因爲這只是內存空間關聯。如果啓動調試器並在填充後查看您的散列映射,我相信您會看到您的位圖坐在那裏,因爲他們應該這樣做。 R.drawable.img1不是位圖,而是一個指向資源的int。我沒有仔細查看你的代碼,但是我一定會考慮將你的對象改爲位圖,然後按照該教程中關於如何將整個Magilla放入你的ListView的建議。 – 2012-01-04 21:17:53