2012-01-04 83 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