59 / 4 / 1
Регистрация: 31.07.2013
Сообщений: 42
|
|||||||||||
1 | |||||||||||
Список контактов с аватарками19.08.2013, 12:23. Показов 2150. Ответов 2
Метки нет (Все метки)
Собственно, есть у меня в программе список контактов. Сейчас появилась необходимость выводить аватарки.
За основу вывода картинок в ListView я взял пример, прилагающийся к Universal ImageLoader. Соответственно, его я и использовал. Адаптер сейчас у меня выглядит так: Кликните здесь для просмотра всего текста
Инициализация ImageLoader Кликните здесь для просмотра всего текста
Получается следующее: На моем телефоне, где около 80 телефонов, выводит аватарку от контакта с id = 1111 на контакт с id=237. Больше ни одной аватарки в списке. Лог на один из тестовых контактов, созданных у меня на телефоне: Кликните здесь для просмотра всего текста
08-19 12:04:01.983: I/getView(8572): 1105 Собакен 1235 URI = content://com.android.contacts/contacts/1105/photo 08-19 12:04:01.983: I/ImageLoader(8572): Start display image task [content://com.android.contacts/contacts/1105/photo_480x800] 08-19 12:04:01.983: I/ImageLoader(8572): Load image from network [content://com.android.contacts/contacts/1105/photo_480x800] 08-19 12:04:01.983: I/ImageLoader(8572): Cache image on disc [content://com.android.contacts/contacts/1105/photo_480x800] 08-19 12:04:01.993: E/ImageLoader(8572): content://com.android.contacts/contacts/1105/photo 08-19 12:04:01.993: E/ImageLoader(8572): java.io.FileNotFoundException: content://com.android.contacts/contacts/1105/photo 08-19 12:04:01.993: E/ImageLoader(8572): at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel( DatabaseUtils.java:149) 08-19 12:04:01.993: E/ImageLoader(8572): at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.ja va:617) 08-19 12:04:01.993: E/ImageLoader(8572): at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.jav a:717) 08-19 12:04:01.993: E/ImageLoader(8572): at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:614 ) 08-19 12:04:01.993: E/ImageLoader(8572): at android.content.ContentResolver.openInputStream(ContentResolver.java:449) 08-19 12:04:01.993: E/ImageLoader(8572): at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFro mContent(BaseImageDownloader.java:164) 08-19 12:04:01.993: E/ImageLoader(8572): at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(Ba seImageDownloader.java:88) 08-19 12:04:01.993: E/ImageLoader(8572): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.downloadImage(Loa dAndDisplayImageTask.java:347) 08-19 12:04:01.993: E/ImageLoader(8572): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryCacheImageOnDi sc(LoadAndDisplayImageTask.java:314) 08-19 12:04:01.993: E/ImageLoader(8572): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(Loa dAndDisplayImageTask.java:254) 08-19 12:04:01.993: E/ImageLoader(8572): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDispla yImageTask.java:134) 08-19 12:04:01.993: E/ImageLoader(8572): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 08-19 12:04:01.993: E/ImageLoader(8572): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 08-19 12:04:01.993: E/ImageLoader(8572): at java.lang.Thread.run(Thread.java:856) 08-19 12:04:02.003: E/ImageLoader(8572): content://com.android.contacts/contacts/1105/photo 08-19 12:04:02.003: E/ImageLoader(8572): java.io.FileNotFoundException: content://com.android.contacts/contacts/1105/photo 08-19 12:04:02.003: E/ImageLoader(8572): at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel( DatabaseUtils.java:149) 08-19 12:04:02.003: E/ImageLoader(8572): at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.ja va:617) 08-19 12:04:02.003: E/ImageLoader(8572): at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.jav a:717) 08-19 12:04:02.003: E/ImageLoader(8572): at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:614 ) 08-19 12:04:02.003: E/ImageLoader(8572): at android.content.ContentResolver.openInputStream(ContentResolver.java:449) 08-19 12:04:02.003: E/ImageLoader(8572): at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFro mContent(BaseImageDownloader.java:164) 08-19 12:04:02.003: E/ImageLoader(8572): at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(Ba seImageDownloader.java:88) 08-19 12:04:02.003: E/ImageLoader(8572): at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.getImageStream(Ba seImageDecoder.java:84) 08-19 12:04:02.003: E/ImageLoader(8572): at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.decode(BaseImageD ecoder.java:70) 08-19 12:04:02.003: E/ImageLoader(8572): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.decodeImage(LoadA ndDisplayImageTask.java:297) 08-19 12:04:02.003: E/ImageLoader(8572): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(Loa dAndDisplayImageTask.java:256) 08-19 12:04:02.003: E/ImageLoader(8572): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDispla yImageTask.java:134) 08-19 12:04:02.003: E/ImageLoader(8572): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 08-19 12:04:02.003: E/ImageLoader(8572): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 08-19 12:04:02.003: E/ImageLoader(8572): at java.lang.Thread.run(Thread.java:856) У этого контакта есть аватарка и она отображается в стандартном контакт листе. В чем косяк? З.Ы. По логам выяснил, что после вывода той единственной косячной иконки getView() почему-то начинает заново перебирать элементы списка, которые видны на самой верхней позиции. Добавлено через 16 минут Сейчас убрал из параметров ImageLoader все "заглушки" и получился довольно интересный результат: При первой прокрутке списка, аватарок ни у кого нет - просто пустые ImageView. Когда я долистал до той единственной аватарки, то при пролистывании в любую сторону, как только эта аватарка исчезает за экраном, то у первого появившегося контакта будет эта-же аватарка. Так-же будет и с этой аватаркой. Если много раз пролистать список от начала до конца, то постепенно заполняется весь список этой аватаркой.
0
|
19.08.2013, 12:23 | |
Ответы с готовыми решениями:
2
Список контактов на форме Получить полный список контактов Список контактов с использованием RecyclerView и SQLite Список контактов |
106 / 106 / 1
Регистрация: 09.04.2012
Сообщений: 655
|
|
19.08.2013, 14:22 | 2 |
Кастомизация списков http://www.coderzheaven.com/20... n-android/
0
|
59 / 4 / 1
Регистрация: 31.07.2013
Сообщений: 42
|
|||||||||||
20.08.2013, 17:03 [ТС] | 3 | ||||||||||
Сдается мне, что аватарки имеют свои ID, которые не совпадают с ID контакта. У меня так получилось, что ID одной из аватарок случайно совпало с одним из контактов.
Добавлено через 17 часов 59 минут Взял метод, предоставленный гуглем - та же фигня. Ничего не помогает. Во всех случаях получаю иконку от контакта #1111 на контакте #237
Вопрос решен! Решил так:
0
|
20.08.2013, 17:03 | |
20.08.2013, 17:03 | |
Помогаю со студенческими работами здесь
3
Скайп, восстановить список контактов Клиент ICQ: как получить список контактов Получить список контактов imap/pop3/smtp Врзможно л получить список контактов из gmail в wordpress плагине? Создать класс, который выведет список деловых контактов в отсортированном виде Считать список контактов из телефонной книжки смартфона на базе windows mobile Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |