Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,873
#1

Загрузка и отображение большого количества картинок с памяти телефона - Программирование Android

10.04.2014, 15:37. Просмотров 2028. Ответов 17
Метки нет (Все метки)

Если изображения больше 10, то начинаются заметные тормоза, если больше 100, то программа падает с ошибкой памяти
у меня есть массив, содержащий абсолютные пути к нужным картинкам
по ним я вытаскиваю thumbnails и загружаю в imageView
каждая imageView обернута в разметки
обернута так(т.е. из кода создается такая размекта)
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<LinearLayout 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:weightSum="1"  
            android:orientation="horizontal">
            <FrameLayout 
                android:layout_width="wrap_content"
                android:layout_weight="0.5"
                android:layout_margin="1dp"
                android:layout_height="wrap_content">
                <RelativeLayout 
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    >
                    <ImageView 
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:src="@drawable/folder"/>
                </RelativeLayout>
            </FrameLayout>
            <FrameLayout 
                android:layout_width="wrap_content"
                android:layout_weight="0.5"
                android:layout_margin="1dp"
                android:layout_height="wrap_content">
                <RelativeLayout 
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    >
                    <ImageView 
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:src="@drawable/folder"/>
                </RelativeLayout>
            </FrameLayout>
        </LinearLayout>
в цикле загружаются thumbnail`s таким образом
Java
1
2
3
4
5
6
7
8
9
cursor = parentA.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] { MediaStore.Images.Media._ID }, MediaStore.Images.Media.DATA + "='" + parentA.links[c] + "'", null, null);
                    if (cursor != null) {
                        if (cursor.getCount() > 0) {
                            cursor.moveToFirst();
                            Bitmap thB = MediaStore.Images.Thumbnails.getThumbnail(parentA.getContentResolver(), cursor.getInt(0), MediaStore.Images.Thumbnails.MINI_KIND, null);
                            e3.setImageBitmap(thB);
                        }
                        
                    }
e3 - imageView

подскажите, что вызывает такую задержку, обращения к памяти, или создание кучи разметок?
и как оптимизировать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2014, 15:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Загрузка и отображение большого количества картинок с памяти телефона (Программирование Android):

При загрузке большого количества картинок библиотекой Picasso заканчивается память - Программирование Android
В общем делаю приложение, которое должно выводить посты пользователя. В этих постах есть картинки, все они должны качаться с интернета. Я...

Массив из большого количества кнопок - Программирование Android
Добрый день! Как понятно из названия, хочу создать массив из большого количества кнопок, 100 например. Нагуглила вот что: int...

OpenGL отрисовка большого количества точек - Программирование Android
Столкнулся с следующей проблемой. При отрисовке большого количества точек в приложении происходит ошибка, и при этом никакие логи не...

Программная расстановка большого количества кнопок - Программирование Android
Здравствуйте, переношу своё сетевое приложение на java &quot;Морской бой&quot; и столкнулся с небольшой проблемой, я совсем не понял, как можно...

Хранение и использование большого количества изображений - Программирование Android
Всем привет! Подскажите способ хранения большого количества изображений, чтобы можно было эти изображения удобно использовать. Смотрел...

Сохранение большого количества записей ключ-значение - Программирование Android
Люди, подскажите, пожалуйста, как мне сохранить в приложении большое количество записей ключ-значение? Ближе всего мне, конечно, SQLite, но...

17
YuraAAA
1578 / 1319 / 271
Регистрация: 25.10.2009
Сообщений: 3,437
Записей в блоге: 2
13.04.2014, 17:13 #16
spydark91, не заморачивайтесь и используйте готовую библиотеку https://github.com/nostra13/Android-Universal-Image-Loader

И просто вызываете его в адаптере:

Java
1
ImageLoader.getInstance().displayImage("your_url", mageView);
Это отличная либа, сама всё закэширует, сама создаст потоки на загрузку.
0
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,873
13.04.2014, 17:20  [ТС] #17
да все уже работает)
приятно самому разобраться же
надо понимать как такие вещи работают, хотя бы примерно
0
YuraAAA
1578 / 1319 / 271
Регистрация: 25.10.2009
Сообщений: 3,437
Записей в блоге: 2
13.04.2014, 19:21 #18
spydark91, Кстати на счёт кэша - у андроида уже есть такой LruCache<K, V> http://developer.android.com/reference/android/util/LruCache.html
1
13.04.2014, 19:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2014, 19:21
Привет! Вот еще темы с ответами:

Высокопроизводительные таблицы для отображение большого количетсва данных - Программирование Android
Доброго времени суток. Честно говоря, не думал, что буду писать этот вопрос, поскольку пришел с удобного мне мира Qt где есть превосходная...

Чек большого количества togglebutton при прогрессе seekBar тормозит - Программирование Android
Суть проблемы: есть 81 togglebutton у которых меняется background при помощи селектора. Эти кнопки чекаются за счет прогресса Seekbar....

Динамическая загрузка картинок из интернета - Программирование Android
Добрый день. Пишу спец. rss реадер для одного сайта. И столкнулся с проблемой. К примеру есть у меня список новостей (листвью), в котором...

Сохранить файл в памяти телефона, доступной из диспетчера файлов или на ПК - Программирование Android
Доброго времени суток. Мне необходимо сохранять некоторые файлы в публичной области памяти телефона (НЕ внешней, т.к. внешней памяти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru