Android ListView落后于ImageLoader

Android ListView落后于ImageLoader,android,android-listview,lazy-loading,Android,Android Listview,Lazy Loading,我正在使用androidimageloader.com,当图像加载到列表中时,会有一些闪烁,这与使用它的演示和应用程序大不相同。我在应用程序类中有imageLoader,但不明白它为什么会闪烁。这些图片是用户的Facebook个人资料图片。这是什么原因造成的?这是我的适配器: public class FriendAdapter extends BaseAdapter { private Typeface tf; LayoutInflater inflater; priv

我正在使用androidimageloader.com,当图像加载到列表中时,会有一些闪烁,这与使用它的演示和应用程序大不相同。我在应用程序类中有imageLoader,但不明白它为什么会闪烁。这些图片是用户的Facebook个人资料图片。这是什么原因造成的?这是我的适配器:

public class FriendAdapter extends BaseAdapter {
    private Typeface tf;
    LayoutInflater inflater;
    private String[] nameEvents;
    private String[] urls;
    private ArrayList<Friend> friends;
    ImageManager imageManager;
    ImageTagFactory imageTagFactory;

    public FriendAdapter(Activity activity, ArrayList<Friend> friends) {
        this.friends = friends;
        setData(this.friends);
        tf = Typeface.createFromAsset(activity.getAssets(),
                "fonts/Roboto-Condensed.ttf");
        inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        imageManager = BuzzbabaApplication.getImageLoader();
        imageTagFactory = new ImageTagFactory(activity, R.drawable.no_pic_icon);
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        FriendView fView;
        if (convertView == null) {
            convertView = inflater.inflate(R.layout.friend_layout, null);
            fView = new FriendView();
            fView.name = (TextView) convertView.findViewById(R.id.friendName);
            fView.name.setTypeface(tf);
            fView.pic = (ImageView) convertView.findViewById(R.id.profilePic);
            convertView.setTag(fView);
        } else {
            fView = (FriendView) convertView.getTag();
        }
        fView.name.setText(nameEvents[position]);
        // HomeScreen.imageLoader.DisplayImage(urls[position], fView.pic);
        ((ImageView) fView.pic).setTag(imageTagFactory.build(urls[position]));
        imageManager.getLoader().load(fView.pic);
        return convertView;
    }

    public void setData(ArrayList<Friend> friends) {
        nameEvents = new String[friends.size()];
        urls = new String[friends.size()];
        int index = 0;
        for (Friend f : friends) {
            String pos = f.getName();
            int num = f.getNumEvents();
            if (num == 1) {
                pos = pos + "\n" + num + " event";
            } else {
                pos = pos + "\n" + num + " events";
            }
            nameEvents[index] = pos;
            urls[index] = f.getPictureURL();
            index++;
        }
    }

    static class FriendView {
        TextView name;
        ImageView pic;
    }

    public int getCount() {
        return friends.size();
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

}
公共类FriendAdapter扩展了BaseAdapter{
专用字体tf;
充气机;
私有字符串[]nameEvents;
私有字符串[]URL;
私人ArrayList朋友;
图像管理器图像管理器;
ImageTagFactory ImageTagFactory;
public FriendAdapter(活动,ArrayList friends){
这个。朋友=朋友;
setData(this.friends);
tf=Typeface.createFromAsset(activity.getAssets(),
“fonts/Roboto Condensed.ttf”);
充气器=(充气器)活动
.getSystemService(上下文布局\充气机\服务);
imageManager=BuzzbabaApplication.getImageLoader();
imageTagFactory=新imageTagFactory(活动,R.drawable.no_pic_图标);
}
公共视图getView(int位置、视图转换视图、视图组父视图){
FriendView;
if(convertView==null){
convertView=充气机。充气(R.layout.friend_layout,null);
fView=新的FriendView();
fView.name=(TextView)convertView.findViewById(R.id.friendName);
fView.name.setTypeface(tf);
fView.pic=(ImageView)convertView.findViewById(R.id.profilePic);
convertView.setTag(fView);
}否则{
fView=(FriendView)convertView.getTag();
}
fView.name.setText(nameEvents[position]);
//主屏幕.imageLoader.DisplayImage(URL[position],fView.pic);
setTag(imageTagFactory.build(url[position]);
imageManager.getLoader().load(fView.pic);
返回视图;
}
公共void setData(ArrayList好友){
nameEvents=新字符串[friends.size()];
URL=新字符串[friends.size()];
int指数=0;
对于(朋友f:朋友){
字符串pos=f.getName();
int num=f.getNumEvents();
如果(num==1){
pos=pos+“\n”+num+“事件”;
}否则{
pos=pos+“\n”+num+“事件”;
}
nameEvents[索引]=位置;
URL[index]=f.getPictureURL();
索引++;
}
}
静态类FriendView{
文本视图名称;
图像视图;
}
public int getCount(){
return friends.size();
}
公共对象getItem(int位置){
返回位置;
}
公共长getItemId(int位置){
返回位置;
}
}

一旦图像下载并在列表的某个缓存区域滚动,就会像黄油一样平滑,但当它们下载时,情况并非如此,它们会闪烁进来,破坏用户界面体验。您好@user1212314,我也在使用ImageLoader加载图像,但出现空指针异常。你能看看这个,帮我看看哪里出了问题吗?