2016-01-08 3 views
0

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

В случае неудачной попытки извлечения изображения у меня есть резервное изображение, которое необходимо визуализировать. Это сохраняется в папке «res» как часть ресурсов. В настоящее время я делаю это в конструкторе адаптера:

Drawable drawable = context.getResources().getDrawable(R.drawable.backup); 
Bitmap backupBitmap = ((BitmapDrawable)drawable).getBitmap(); 

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

Пожалуйста, дайте мне знать, правильно ли этот подход или мне нужно что-то изменить? Будет ли резервная копия Bitmap вызывать проблемы памяти или производительности? Пожалуйста, порекомендуйте.

+0

Вместо Drawable для преобразования растровых изображений вы можете просто сохранить резервную копию как по умолчанию файл изображения в виде списка. – VVB

+0

@VVB: Если мне нужно изменить ширину и высоту изображения, то не следует ли его преобразовать в растровое изображение для того же самого? – Raghav

+0

Да Если вы сохраняете желаемое изображение ширины/высоты в папке res, вам не нужно преобразовывать его в растровое изображение. Просто он будет показывать это как изображение по умолчанию, если ваш WS не сможет получить изображение для определенного URL-адреса. – VVB

ответ

1

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

См документации ниже:

http://developer.android.com/training/displaying-bitmaps/manage-memory.html

+0

Хотя ссылка предоставляет полезную информацию, она конкретно не затрагивает проблему, поставленную выше. Спасибо за ваш ответ. – Raghav

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