Способы устранения исключения нехватки памяти в методе Bitmap.createBitmapAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Способы устранения исключения нехватки памяти в методе Bitmap.createBitmap

Сообщение Anonymous »

У меня есть следующий код для преобразования представления в растровое изображение и отправки его на печать.
Он выдает OutOfMemoryError для
Bitmap.createBitmap:
Не удалось выделить 43899852 байта с 9531608 свободными байтами и 9 МБ до OOM.
Можно ли разделить проблему, создать растровые изображения меньшего размера и объединить их или какие-то другие уловки?

Код: Выделить всё

 private fun loadBitmapFromView(context: Context, v: View): Bitmap {
val dm = context.resources.displayMetrics
v.measure(
View.MeasureSpec.makeMeasureSpec(dm.widthPixels, View.MeasureSpec.EXACTLY),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
)
v.layout(0, 0, v.measuredWidth, v.measuredHeight)
val returnedBitmap = Bitmap.createBitmap(
v.measuredWidth,
v.measuredHeight, Bitmap.Config.ARGB_8888
)
val c = Canvas(returnedBitmap)
v.draw(c)
return returnedBitmap


Подробнее здесь: https://stackoverflow.com/questions/761 ... map-method
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»