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初学,请尽量详细一点,谢谢 展开
现在我要用一个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初学,请尽量详细一点,谢谢 展开
1个回答
展开全部
首先你要把hashmap改成HashMap(String, Drawable)
然后put进去
ImageView有个方法
setImageDrawable(Drawable d)
直接把drawable对象传如即可
如果只能得到资源,可以调用setImageResource(int resourceId)
然后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);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询