Android在加载联系人照片时平滑滚动列表视图

Android在加载联系人照片时平滑滚动列表视图,android,list,listview,bitmap,android-contacts,Android,List,Listview,Bitmap,Android Contacts,我使用此方法在扩展游标适配器(使用LoaderManager)中加载联系人照片: 在每个项目上使用QuickContactBadge查看我的联系人列表,即使联系人没有图像,列表视图也不会平滑滚动 我可以在AsyncTask中加载图像,还是可以加快加载速度?使用这种常用方法,通过循环使用来大量优化您的ListView: 你应该对上述方法进行调整,使其与常规方法配合使用(只使用你给出的代码,只使用了这么多次) 但是,如果您已经按照自己的需求定制了通用优化方法,但仍然非常缓慢,那么应该使用异步任务。

我使用此方法在扩展游标适配器(使用LoaderManager)中加载联系人照片:

在每个项目上使用QuickContactBadge查看我的联系人列表,即使联系人没有图像,列表视图也不会平滑滚动


我可以在AsyncTask中加载图像,还是可以加快加载速度?

使用这种常用方法,通过循环使用来大量优化您的ListView:

你应该对上述方法进行调整,使其与常规方法配合使用(只使用你给出的代码,只使用了这么多次)

但是,如果您已经按照自己的需求定制了通用优化方法,但仍然非常缓慢,那么应该使用异步任务。下面的链接应该可以帮助您进行设置-只需使用占位符图像,直到任务完成,然后将图像与视图对象一起保存,这样您就不必在用户重新滚动时再次获取图像。

这里有一个使用回收方法的博客[无法更早附加]:你知道如何使用异步任务吗?是的。你需要使用它的帮助吗?需要。您能帮助我构建AsyncTask吗?使用我发布的最后一个链接,并使用您迄今为止尝试过的内容进行更新,包括listview和AsyncTask部分的代码,以及您认为相关的任何其他内容。[虽然我认真地认为这是另一个完整的问题,老实说。也许打开另一个更具体的问题,你尝试了什么并标记了这个答案?]
private Bitmap loadContactPhoto(Uri contactUri) {
        ContentResolver cr = getActivity().getContentResolver();
        InputStream stream = Contacts.openContactPhotoInputStream(cr, contactUri);
        return BitmapFactory.decodeStream(stream);
    }