Android 自定义listview适配器,setImageBitmap不加载位图
我为ListViewMyrStitleListAdapter扩展阵列创建了自己的适配器Item的adapter是我的实体类。我重写了getView方法,如下所示:Android 自定义listview适配器,setImageBitmap不加载位图,android,listview,bitmap,Android,Listview,Bitmap,我为ListViewMyrStitleListAdapter扩展阵列创建了自己的适配器Item的adapter是我的实体类。我重写了getView方法,如下所示: public View getView(int position, View converView, ViewGroup parent) { View view = converView; if(view == null) { LayoutInflater li =(LayoutInflater)context.get
public View getView(int position, View converView, ViewGroup parent) {
View view = converView;
if(view == null) {
LayoutInflater li =(LayoutInflater)context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
view = li.inflate(layout, null);
}
final Item listItem = items[position];
if(listItem != null) {
ImageView image = (ImageView)view.findViewById(R.id.image);
image.setImageBitmap(ImageTool.loadImage(listItem.getImageURL()));
HTMLUtilities htmlTool = HTMLUtilities.getInstance();
TextView title = (TextView)view.findViewById(R.id.label);
title.setText(htmlTool.escapeHTML(listItem.getTitle()));
}
return view;
}
setListAdapter(new myRSSTitleListAdapter(this, R.layout.rss_items, items));
ImageTool是我编写的一个类,loadImage从传递给它的url返回位图。
我在我的ListActivity中调用MyrStitleListAdapter,如下所示:
public View getView(int position, View converView, ViewGroup parent) {
View view = converView;
if(view == null) {
LayoutInflater li =(LayoutInflater)context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
view = li.inflate(layout, null);
}
final Item listItem = items[position];
if(listItem != null) {
ImageView image = (ImageView)view.findViewById(R.id.image);
image.setImageBitmap(ImageTool.loadImage(listItem.getImageURL()));
HTMLUtilities htmlTool = HTMLUtilities.getInstance();
TextView title = (TextView)view.findViewById(R.id.label);
title.setText(htmlTool.escapeHTML(listItem.getTitle()));
}
return view;
}
setListAdapter(new myRSSTitleListAdapter(this, R.layout.rss_items, items));
items是项的数组
rss_items是一个带有imageView和textView的线性布局
对于textView,一切都很好,setText对我返回的视图有影响,但是图像没有出现,我确信位图在这里
谢谢我认为问题出在loadImage中,因为您的代码看起来不错
应该发生两件事中的一件:
如果loadImage正常工作,行中的文本应该需要很长时间才能显示,因为getView在loadImage正常工作之前不会返回。
如果loadImage出现错误或正在异步工作,则getView将立即返回并仅设置文本,这就是您正在描述的行为。
将图像异步加载到ImageView要比它应该的复杂得多。如果你不能让它工作,你可以试试