У меня есть фрагмент, который извлекает данные из веб-сервиса и отображает их в ListView. У меня есть 10 различных селекторов, которые могут использоваться для фона строк. Фон повторяется после его зацикливания.
Проблема, с которой я сталкиваюсь, заключается в том, что устройство (Galaxy Nexus!) Не может обрабатывать отображение всех этих фонов. Когда я устанавливаю фон с помощью setbackgroundResource, ОС постоянно вызывает GC для освобождения памяти, что делает прокрутку ListView чрезвычайно прерывистой.
Поэтому я попытался кэшировать используемые Drawables. Я вижу улучшение, но в конечном итоге устройство выдаст исключение OutOfMemory из-за количества кэшируемых объектов Drawables. Чтобы привести пример того, сколько кэшируется, мне нужны все 10 селекторов, которые содержат по два рисованных элемента в каждом, плюс первый и последний, поскольку они различны. Это 24 рисования в памяти.
Теперь я подумал, что это может быть размер изображений, которые я использую, и что мне нужно уменьшить их и просто пропорционально растянуть, но я не уверен, будет ли это работать.
Есть предложения? Я потратил пару дней, работая над этим безостановочно, и не нашел жизнеспособного / близкого решения.
Спасибо
Адам