#android #bitmap #recycle #bitmapshader
#Android #растровое изображение #переработать #растровое изображение
Вопрос:
Каков был бы правильный (рекомендуемый) способ переработки / освобождения растрового изображения растрового изображения?
Должны ли мы сохранить ссылку на растровое изображение и, как только растровое изображение больше не используется, вызвать bitmap.recycle()?
Глядя на источник BitmapShader, он ясно показывает, что класс не выполняет никакого освобождения поверх растрового изображения, но сохраняет ссылку, чтобы избежать сборки мусора, поскольку большая часть реализации находится в машинном коде.
Ответ №1:
После некоторых исследований я обнаружил, что растровое изображение все равно должно быть переработано, поскольку BitmapShader не выполняет для него никакого освобождения.
Способ продолжить — убедиться, что BitmapShader больше не используется каким-либо другим классом. Итак, если, например, растровое изображение используется в Paint instace, например, paint.setShader (BitmapShader), то перед переработкой растрового изображения удалите ссылку на шейдер, например paint.setShader(null).
После того, как убедитесь, что растровое изображение не используется и вообще не будет использоваться повторно, затем утилизируйте растровое изображение как обычно.