Я не верю, что этот вопрос ограничен живыми обоями, но это тот случай использования, с которым я пытаюсь работать.
У меня есть растровое изображение 256 x 256, созданное как «плитка» для моих живых обоев. Я ищу эффективный способ памяти масштабировать это, чтобы соответствовать всему экрану устройства. Я продолжаю сталкиваться с проблемами "превышения памяти ВМ" всякий раз, когда устройство вращается вперед и назад, что говорит о том, что я не решаю проблему правильно.
Изображение рисуется методом Canvas drawBitmap()
. Я пробовал следующие варианты:
- Создайте растровое изображение, затем вызовите
createScaledBitmap()
- Создайте растровое изображение, затем вызовите
scale()
на моем холсте
- Создайте растровое изображение, затем создайте матрицу, чтобы «растянуть» ширину и высоту, и примените ее с
preScale()
Если я позвоню recycle()
, живые обои запускаются на один кадр, а затем вылетает. Если я вообще не поворачиваю устройство, я не получаю сбоев памяти.
Спасибо за любые предложения!