0

我正在构建一个联系人应用程序。在主要活动中,我有一个列表视图,我在其中显示联系人。

我正在使用 CursorAdapter 来处理带有列表的光标

没有照片,一切都很好。

但是,当我尝试使用照片时,滚动变得迟钝。

调用打开输入流的速度非常慢,即使 inputStream 为空并且没有要加载的图像:

public static Bitmap loadContactPhoto(ContentResolver cr, long  id) 
{
   Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id);
   InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);

   if (input == null) 
   {
       return null;
   }

   return BitmapFactory.decodeStream(input);
}

我能做些什么呢?

4

1 回答 1

0

您是否在 UI 线程中加载图像......如果是,您不应该这样做,因为这会阻塞线程并使用户体验迟缓。

您可能应该学习延迟加载图像......尝试谷歌搜索......

我也不会在 UI 线程上进行数据库操作...尽管有人说可以在 UI 线程中进行小型数据库操作...我会尽可能避免它...

检查以下链接:

ListView 中图像的延迟加载

于 2012-01-22T23:29:24.823 回答