2013-02-23 3 views
0

Приложение, в котором я работаю, будет иметь множество изображений (списки, в которых каждый элемент списка имеет изображение, сетки с изображениями, галерея изображений), поэтому в конце разработки в папке с возможностью переноса будет около 1000 или более изображений. Прямо сейчас у меня около 200 изображений в папке с возможностью переноса.Оптимизация приложений для Android в отношении изображений

Можно ли разместить все изображения в папке с возможностью переноса или который является оптимальным способом их добавления?

Изображения используются для:

  • Gridview

  • ListView для каждого Gridview Пункт

  • Галерея для каждого элемента ListView
+0

В каком смысле вы имеете в виду оптимальное значение. Скорость чтения изображений или некоторые другие проблемы с производительностью? В первую очередь меня больше всего беспокоит использование памяти на старых телефонах. APK - это zip-файл, поэтому наличие большого количества небольших файлов по сравнению с одним большим файлом может не иметь большого значения для скорости чтения. –

+0

Я не хочу просыпаться в конце разработки, что приложение не работает хорошо даже на более новых телефонах, потому что в папке с возможностью переноса 1000 изображений –

+0

Затем получите 10000 изображений и производительность проверит ваше приложение (даже просто взгляды вы описываете выше) на Галактике Y или аналогичной! –

ответ

0

Вы можете сохранить изображения на SD-карте , Сохранение в папке ресурсов увеличит размер приложения.

0

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

Выделяемая папка, предназначенная для хранения значков и фона, а в некоторых случаях, когда у вас нет большого количества изображений, я могу использовать для хранения изображений для списков и сеток. Это связано с тем, что изображения с возможностью рисования предварительно загружаются в память, поэтому, если у вас много изображений с высоким разрешением, они могут потреблять всю память RAM устройства.

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

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

И если вам нужно одновременно отображать несколько изображений с высоким разрешением на экране, я предлагаю создать их с помощью BitmapFactory.options.inSampleSize. Это позволяет передавать параметры размера в растровое изображение, которое вы собираетесь построить, поэтому вы не создаете растровое изображение, которое должно быть большим по сравнению с размером контейнера, который будет хранить его.

0

Изображение из ресурсов Загрузка быстрее (просто по ID).
Но если вы сохраняете более 1000 изображений, ваше приложение будет огромным.
Итак, мой совет: сохраняйте изображения как zip на каком-то веб-сервере, после того как пользователь сначала установит ваше приложение, вы должны скачать и разархивировать его в папку SD-карты.

Смежные вопросы