【发布时间】:2011-02-03 11:20:12
【问题描述】:
我正在尝试将不同的图像(.jpg、.png)动态地放入来自 res/drawable 的ListView 中。
我从数据库中获得的图像中的名称。
图片本身位于res/drawable 文件夹中。
这是我已经拥有的,错误为 :D
字符串 imgName; --> 数据库中有我需要的img名称
Drawable drawable;
drawable = Class.appContext.getResources().getDrawable(Class.appContext.getResources().getIdentifier("com.example.test:drawable/"+imgName,null,null));
然后我为数据库中的每张图片(+- 200 张图片)将其放入 ArrayList:
ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> map = new HashMap<String, Object>();
map = new HashMap<String, Object>();
map.put("img",drawable);
map.put("text", "some text");
list.add(map);
现在我返回列表;
在我打电话的班级里:
listReceive = Class.getImages(appContext);
listSetup = new SimpleAdapter(this, listReceive, R.layout.row,
new String[] {"img", "text"}, new int[] {R.id.IMG_CELL, R.id.TEXT_CELL});
lvList.setAdapter(listSetup);
XML 行是一个ImageView 和一个TextView。
System.out :resolveUri 失败 位图 uri: android.drawable.bitmapDrawable@405739 resolveUri 在错误的位图 uri 上失败: android.drawable.bitmapDrawable@405639 resolveUri 在错误的位图 uri 上失败: android.drawable.bitmapDrawable@405959 resolveUri 在错误的位图 uri 上失败: android.drawable.bitmapDrawable@405677... ... ...
当我将图像保存到本地或 SD 卡内存中时,它就可以工作了,然后将路径放在 arraylist 中,例如:
map.put("img","/data/data/com.example.test/images/" + imgName);
我不能使用它,因为我需要将图片从res/drawable 复制到本地或 SD。这占用了 2 倍的内存。不能有那个。
必须有一种方法可以从可绘制对象中动态获取图像。
有人知道我在这里缺少什么吗? 谢谢。
【问题讨论】:
标签: android listview uri dynamic drawable