Загружать фотографии контактов в виде списка (с помощью CursorAdapter) очень медленно - PullRequest
0 голосов
/ 23 января 2012

Я создаю контактную заявку. В основной деятельности у меня есть просмотр списка, где я показываю контакты.

Я использую CursorAdapter для обработки курсора со списком

Все хорошо работает без фотографий.

Однако, когда я пытаюсь использовать фотографии, прокрутка становится медлительной.

Это вызов для открытия входного потока очень медленный, даже если inputStream имеет значение null и нет изображения для загрузки:

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);
}

Что я могу с этим поделать?

1 Ответ

0 голосов
/ 23 января 2012

Загружаете ли вы изображения в потоке пользовательского интерфейса .... Если да, вам не следует делать это, так как это заблокирует поток и замедлит работу пользователя.

Вы, вероятно, должны научиться ленивой загрузке изображений .... попробуйте поискать в гугле ....

Я бы также не выполнял операции с базами данных в потоке пользовательского интерфейса ... хотя некоторые говорят, что можно делать небольшие операции с БД в потоке пользовательского интерфейса ... Я бы избегал этого в максимально возможной степени ...

Проверьте ссылку ниже:

Ленивая загрузка изображений в ListView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...