如何在Android中获取Image ListView?

时间:2017-01-09 08:17:58

标签: android listview bitmap

我想将(R.drawable.logo)object转换为string,我想在listview中展示它。我使用了以下代码,但它不起作用

 Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(), R.drawable.logo);
 ByteArrayOutputStream ByteStream = new  ByteArrayOutputStream();
 bitmapOrg.compress(Bitmap.CompressFormat.PNG,100, ByteStream);
 byte [] b = ByteStream.toByteArray();
 String temp = Base64.encodeToString(b, Base64.DEFAULT);

 ListAdapter adapter = new SimpleAdapter(
     Welcome.this,
     contactList,
     R.layout.about,
     new String[] { TAG_NAME, TAG_SURNAME, temp },
     new int[] { R.id.name, R.id.surname, R.id.imageView}
 );

 list.setAdapter(adapter);
  

错误:       无法解码流:java.io.FileNotFoundException :: open failed:ENOENT(没有这样的文件或目录)

1 个答案:

答案 0 :(得分:0)

要使用ListViewSimpleAdapter中显示图片,您无需将图片转换为Base64字符串。

new String[] { TAG_NAME, TAG_SURNAME, temp }更改为new String[] { TAG_NAME, TAG_SURNAME, TAG_IMAGE }

contactList数组中添加图片,如下所示

for(int i = 0; i < length; i++){
    HashMap<String, String> hm = new HashMap<String,String>();
    hm.put(TAG_NAME, names[i]);
    hm.put(TAG_SURNAME, surnames[i]);
    hm.put(TAG_IMAGE, Integer.toString(R.drawable.logo) );
    contactList.add(hm);
}

这将为所有行设置R.drawable.logo

但是你得到的错误是FileNotFoundException。因此,也要交叉检查图像是否也存在。

检查this SO线程。