BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #21663同步于 2015/4/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

[问题][Android]关于ListAdapter中图像显示的问题

iwsy
2015/4/28镜像同步21 回复
如题,有可能是如下这两句出错, Bitmap bitmap = ImageLoader.getInstance().loadImageSync(imageUrl, null, options); listItemView.image.setImageBitmap(bitmap); 这两句在自己定义的adaper里,其中ImageLoader是使用的框架universal-image-loader 求大神指教 @dss886
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
icyfox机器人#1 · 2015/4/28
出啥错了
lixing机器人#2 · 2015/4/28
是在view对应的item的布局里set吧,第二句没太明白 发自「贵邮」
iwsy机器人#3 · 2015/4/28
是在item里,convertView = listContainer.inflate(R.layout.list_item, null); 【 在 lixing 的大作中提到: 】 : 是在view对应的item的布局里set吧,第二句没太明白 : 发自「贵邮」
iwsy机器人#4 · 2015/4/28
执行完Bitmap bitmap = ImageLoader.getInstance().loadImageSync(imageUrl, null, options);后,bitmap为空 【 在 icyfox 的大作中提到: 】 : 出啥错了
wang5bbe机器人#5 · 2015/4/28
【 在 iwsy 的大作中提到: 】 : 如题,有可能是如下这两句出错, : Bitmap bitmap = ImageLoader.getInstance().loadImageSync(imageUrl, null, options); : listItemView.image.setImageBitmap(bitmap); : ................... loadImageSync是同步的,我没怎么用过,我都是异步加载
iwsy机器人#6 · 2015/4/28
listAdapter 如下,config 和 option 都是框架初始化的参数,可以忽略不看,这个框架已经在另一个程序里测试过了。应该是我的ListAdapter的问题。 public class ListViewAdapter extends BaseAdapter { private Context context; private List<Map<String, Object>> listItems; private LayoutInflater listContainer; public final class ListItemView { public ImageView image; } public ListViewAdapter(Context context, List<Map<String, Object>> listItems) { this.context = context; listContainer = LayoutInflater.from(context); this.listItems = listItems; System.out.println("Finish the construction of ListViewAdapter()"); } @Override public int getCount() { // TODO Auto-generated method stub return listItems.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { System.out.println("In getView()"); String imageUrl; ListItemView listItemView = null; if (convertView == null) { listItemView = new ListItemView(); convertView = listContainer.inflate(R.layout.list_item, null); listItemView.image = (ImageView) convertView .findViewById(R.id.imageItem); convertView.setTag(listItemView); } else { listItemView = (ListItemView) convertView.getTag(); } imageUrl = (String) listItems.get(position).get("image"); File cacheDir = StorageUtils.getOwnCacheDirectory(context, "imageloader/Cache"); ImageLoaderConfiguration config = ...//此处忽略了若干行初始化参数代码 ImageLoader.getInstance().init(config); DisplayImageOptions options = ...//此处忽略了若干行初始化参数代码 System.out.println("imageUrl[" + position + "] is " + imageUrl); Bitmap bitmap = ImageLoader.getInstance() .loadImageSync(imageUrl, null, options); //这句是关键,bitmap执行完为空,导致没有图像显示 if(bitmap == null) System.out.println("bitmap is null"); else System.out.println("bitmap is not null"); listItemView.image.setImageBitmap(bitmap); return convertView; } }
iwsy机器人#7 · 2015/4/28
我也很好奇它为什么起这个名字,我需要的也是异步加载,但我百度了下貌似这个函数只是返回bitmap类型的值,和同步异步没关系。 【 在 wang5bbe 的大作中提到: 】 : : loadImageSync是同步的,我没怎么用过,我都是异步加载
dss886机器人#8 · 2015/4/28
没怎么用过ImageLoader,查了一下好像是可以做异步的 一般用三方库比如Picasso,Fresco这种的比较多 【 在 iwsy (猴子你好我是救兵) 的大作中提到: 】 : 如题,有可能是如下这两句出错, : Bitmap bitmap = ImageLoader.getInstance().loadImageSync(imageUrl, null, options); : listItemView.image.setImageBitmap(bitmap); : ...................
cowfighting机器人#9 · 2015/4/28
既然是开源的,你可以设个断点进去看到底是否是null。。。 loadImageSync这个是同步方法 https://github.com/nostra13/Android-Universal-Image-Loader // Load image, decode it to Bitmap and return Bitmap synchronously Bitmap bmp = imageLoader.loadImageSync(imageUri, targetSize, options);