android中显示图片,怎么显示“android.graphics.drawable.BitmapDrawable@426ed550”这种路径的图片? 10

我先把系统内已安装的app信息存进了数据库里,它获取并保存app的图标的值是这样的:android.graphics.drawable.BitmapDrawable@42... 我先把系统内已安装的app信息存进了数据库里,它获取并保存app的图标的值是这样的:android.graphics.drawable.BitmapDrawable@426ed550

现在我要用一个listview把这些图标显示出来,之前用listview显示图片是这样写的:
Cursor cursor=sld.rawQuery(sqlt,null);
while(cursor.moveToNext()){
String appname=cursor.getString(cursor.getColumnIndex("appname"));
String appicon=cursor.getString(cursor.getColumnIndex("appicon"));

map = new HashMap<String, Object>();
map.put("appname", appname);
map.put("appicon", R.drawable.ic_launcher);

list.add(map);
}
return list;
其中的map.put("appicon", R.drawable.ic_launcher);这句是显示本app本身的图片资源。但现在把“R.drawable.ic_launcher”直接换成android.graphics.drawable.BitmapDrawable@426ed550是报错的。不知道应该怎么写才能把这个图标调用显示出来。本人android初学,请尽量详细一点,谢谢
展开
 我来答
heptnaol
2014-11-24 · TA获得超过7263个赞
知道大有可为答主
回答量:7120
采纳率:78%
帮助的人:1823万
展开全部
首先你要把hashmap改成HashMap(String, Drawable)
然后put进去

ImageView有个方法
setImageDrawable(Drawable d)
直接把drawable对象传如即可
如果只能得到资源,可以调用setImageResource(int resourceId)
追问
我也查到可以用setimagedrawable方法,但我这是写成put的,怎么调用imageview啊?
追答
你的布局应该是个gridView吧
每个项目是一个layout,里面有个ImageView展示图标,有个TextView展示应用名称

在Adapter里面重写getView方法
下面是伪代码了:
getView(View parent, view convertView, int position)
{
Map item = list.get(position);//list 之前已经put了很多这种东西

String appName = (String)item.get("appname");

Drawable d = (Drawable)item.get("appicon");

convertView = inflator.inflate(R.layout.your_layout, null);

TextView nameText = (TextView) convertView.findViewById(R.id.appname);
nameText.setText(appName);
ImageView iconImage = (ImageView)convertView.findViewById(R.id.appicon);
iconImage.setImageDrawable(d);

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式