Изменение размера изображений в списке - PullRequest
0 голосов
/ 22 декабря 2011

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

Итак, мои вопросы ... быстрее ли хранить два изображения (однообычный и один эскиз), поэтому ничего не нужно масштабировать на лету ИЛИ быстрее ли просто позволить Android масштабировать это увеличенное изображение при создании списка?

Спасибо!Ник

Ответы [ 2 ]

1 голос
/ 22 декабря 2011

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

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

1 голос
/ 22 декабря 2011

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

...