2011-12-22 3 views
0

У меня есть куча изображений, которые отображаются в виде списка (по одному в строке). Файл изображения, который у меня есть, - довольно большое разрешение, поэтому мне нужно будет его масштабировать, чтобы он отображался в виде списка.Изменение размера изображений в списке

Итак, мои вопросы: это быстрее хранить два изображения (одно регулярное и одно миниатюру), поэтому ничто не должно масштабироваться «на лету», или это быстрее, просто чтобы андроид мог масштабировать это большее изображение по списку создание?

Спасибо! Nick

+0

Мысль: вы хотите знать, что такое разрешение цели, а затем предварительно изменить размер изображения, подходящего на сервере. – mozillanerd

+0

Изображение вытаскивается с сервера, который не является нашим, поэтому, к сожалению, это не вариант. – Nick

ответ

1

Наилучший подход зависит от вашего конкретного варианта использования. Если вы действительно хотите изменить размер изображения на миниатюрный уровень (например, 150x150) и не планируете отображать более 30 изображений для отображения, наилучшим подходом было бы просто сохранить кеш битмапов в памяти, не записывая их на диск (при стоимости около 3 МБ памяти для 30 изображений). Таким образом, ваш ListView не будет заикаться, пока вы прокручиваете изображения в и из экрана. Конечно, вы можете сохранить полную версию и отобразить ее, когда пользователь вступает в элемент ListView.

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

1

Храните два изображения, чтобы пользователи не могли ждать, чтобы получить полный размер каждого изображения, даже если все, что они ищут, - это миниатюры, если изображения не включены в приложение (т.е. не загружаются на лету).

+1

Согласовано. И помимо ожидания есть также цена: пользователь может быть в мобильном плане данных, заплаченном или ограниченном количеством трафика. –

+0

Действительно, я думал об этом, но забыл написать его. Спасибо. – Amadan

+0

Большие начальные изображения будут загружены в фоновом режиме. Шаг загрузки изображения выполняется только один раз, поэтому вы можете взять это из уравнения на данный момент. Там потенциально могут быть тысячи изображений, поэтому в этом списке стоит меньшего изображения, поэтому нет никакого масштабирования, связанного с настройкой списка, или вместо того, чтобы андроид автоматически масштабировал изображение вниз? (опять же, притворитесь, что все изображения были в комплекте с приложением) – Nick