动态设置ListView图像

时间:2013-06-06 21:54:55

标签: android image listview bitmap

我正在尝试在ListView上设置一个Image并且我已经编写了适配器代码,它似乎工作正常,但实际获取图像的行总是给出一个关于无法找到的错误一个图像。

获取图像的代码如下,

Bitmap logo = BitmapFactory.decodeResource(MainActivity.this.getResources(), R.drawable.dm);

// creating new HashMap
HashMap<String, Object> map = new HashMap<String, Object>();

// adding each child node to HashMap key => value
map.put(TAG_BODY, id);
map.put(TAG_TITLE, name);
map.put(TAG_URL, uri);
map.put(TAG_TIME, dateFormated);
map.put(TAG_SITE, logo);

// adding HashList to ArrayList
productsList.add(map);

然后应用于ListView的代码是

ListAdapter adapter;
adapter = new SimpleAdapter(
MainActivity.this, productsList,
R.layout.list_row, new String[] { TAG_BODY, TAG_TITLE, TAG_URL, TAG_TIME, TAG_SITE},
  new int[] { R.id.id, R.id.headline, R.id.url, R.id.time, R.id.list_i});

// updating listview
setListAdapter(adapter);

,错误是

06-06 22:39:44.283  32407-32407/com.mystraldesign.aggregate    E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /: open failed: EISDIR (Is a directory)
06-06 22:39:44.283  32407-32407/com.mystraldesign.aggregate    I/System.out: resolveUri failed on bad bitmap uri:
06-06 22:39:44.283  32407-32407/com.mystraldesign.aggregate    E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /: open failed: EISDIR (Is a directory)
06-06 22:39:44.283  32407-32407/com.mystraldesign.aggregate    I/System.out: resolveUri failed on bad bitmap uri:
06-06 22:39:44.293  32407-32411/com.mystraldesign.aggregate    D/dalvikvm: GC_CONCURRENT freed 276K, 22% free 10335K/13112K, paused 2ms+3ms, total 22ms
06-06 22:39:44.293  32407-32407/com.mystraldesign.aggregate    E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /: open failed: EISDIR (Is a directory)
06-06 22:39:44.293  32407-32407/com.mystraldesign.aggregate    I/System.out: resolveUri failed on bad bitmap uri:
06-06 22:39:44.303  32407-32407/com.mystraldesign.aggregate    E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /: open failed: EISDIR (Is a directory)
06-06 22:39:44.303  32407-32407/com.mystraldesign.aggregate    I/System.out: resolveUri failed on bad bitmap uri:
06-06 22:39:44.303  32407-32407/com.mystraldesign.aggregate    E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /: open failed: EISDIR (Is a directory)
06-06 22:39:44.303  32407-32407/com.mystraldesign.aggregate    I/System.out: resolveUri failed on bad bitmap uri:
06-06 22:39:44.313  32407-32407/com.mystraldesign.aggregate    E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /: open failed: EISDIR (Is a directory)
06-06 22:39:44.313  32407-32407/com.mystraldesign.aggregate    I/System.out: resolveUri failed on bad bitmap uri:
06-06 22:39:44.313  32407-32407/com.mystraldesign.aggregate    E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /: open failed: EISDIR (Is a directory)
06-06 22:39:44.313  32407-32407/com.mystraldesign.aggregate    I/System.out: resolveUri failed on bad bitmap uri:
06-06 22:39:44.313  32407-32407/com.mystraldesign.aggregate    E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /: open failed: EISDIR (Is a directory)
06-06 22:39:44.313  32407-32407/com.mystraldesign.aggregate    I/System.out: resolveUri failed on bad bitmap uri:
06-06 22:39:44.323  32407-32407/com.mystraldesign.aggregate    E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /: open failed: EISDIR (Is a directory)
06-06 22:39:44.323  32407-32407/com.mystraldesign.aggregate    I/System.out: resolveUri failed on bad bitmap uri:
06-06 22:39:44.333  32407-32407/com.mystraldesign.aggregate    E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /: open failed: EISDIR (Is a directory)
06-06 22:39:44.333  32407-32407/com.mystraldesign.aggregate    I/System.out: resolveUri failed on bad bitmap uri:

1 个答案:

答案 0 :(得分:1)

你可以在这里看到android.widget.SimpleAdapter SimpleAdapter的setViewImage方法只接受两个参数:

第一个参数: 要在其中设置当前图像的ImageView ID

第二个参数: 字符串(如果要从文件路径设置ImageView src)或整数(如果要从drawable的id设置ImageView src)

所以你需要只传递drawable id而不是drawable

的Bitmap