Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
#1

OutOfMemory при создании большого Bitmap - Программирование Android

04.05.2013, 22:46. Просмотров 1006. Ответов 9
Метки нет (Все метки)

Всем привет! Пытаюсь создать Bitmap размером 5120 * 2600 точек, на что отладчик ругается, что мол нет памяти. Неужели это непосильная для устройства задача? Отладка идет на SGS III. Реально ли с этим бороться?

Добавлено через 27 минут
Разузнал, что можно создавать Bitmap только размером до 4096*4096. Неужели нельзя больше? Хотелось хотя-бы 50000 * 3000... =)) Или я уже совсем перегибаю? =)))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.05.2013, 22:57     OutOfMemory при создании большого Bitmap #2
попробуйте добавить в манифест в <application> android:largeHeap="true"
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
04.05.2013, 23:03     OutOfMemory при создании большого Bitmap #3
Цитата Сообщение от V0v1k Посмотреть сообщение
попробуйте добавить в манифест в <application> android:largeHeap="true"
Работает на устройствах с Android 3.x и выше. Увеличиввает Heap до 256 MB. Для SGS III подойдет!
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
04.05.2013, 23:06  [ТС]     OutOfMemory при создании большого Bitmap #4
Цитата Сообщение от V0v1k Посмотреть сообщение
попробуйте добавить в манифест в <application> android:largeHeap="true"
попробовал, Bitmap увеличился, но рисование на канвасе стало глючить, и в итоге прога вылетела. Вообще, я так понял, что рисовать на канвасе, используя битмап, очень ресурсоемкое дело. Есть ли возможность отрисовать большую сцену, не используя битмапа?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.05.2013, 23:12     OutOfMemory при создании большого Bitmap #5
если нужно нарисовать внешнюю картинку то без битмапа не обойтись.

Добавлено через 1 минуту
а зачем вам такая большая картинка?
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
04.05.2013, 23:12  [ТС]     OutOfMemory при создании большого Bitmap #6
Цитата Сообщение от V0v1k Посмотреть сообщение
если нужно нарисовать внешнюю картинку то без битмапа не обойтись.
неа, внешняя картинка не нужна. все рисуется программно. есть способ?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.05.2013, 23:14     OutOfMemory при создании большого Bitmap #7
Цитата Сообщение от razer89 Посмотреть сообщение
неа, внешняя картинка не нужна. все рисуется программно. есть способ?
тогда просто рисуете на канвасе.
Java
1
2
canvas.drawLines();
canvas.drawRect();
и т.п.
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
05.05.2013, 01:06  [ТС]     OutOfMemory при создании большого Bitmap #8
вы знаете, пробовал так, но что-то ничего оно не отрисовывает...

Добавлено через 29 минут
появилась идея не рисовать сразу весь канвас, а отрисовывать только ту его часть, которая видна на экране... тогда не придется использовать битмап мега размеров) единственный минус - придется перелопатить ОХ КАК НЕМАЛО кода... эх, знал бы я это раньше....

Добавлено через 1 час 13 минут
V0v1k, помогите пожалуйста додумать...
В общем, у меня есть канвас, который рисует на битмапе. Битмап у меня размером такой же, как и экран. Если рисовать на канвасе, то все замечательно, но когда отрисовка выходит за область бимапа - не рисуется ничего. Возможно ли сделать так, чтобы при скроле канваса двигался и сам битмап? Тогда его размеры можно не увеличивать, просто будет видно то, что рисуется в области битмапа...
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.05.2013, 02:00     OutOfMemory при создании большого Bitmap #9
я всегда рисовал просто на канвасе.

Добавлено через 2 минуты
не совсем понятна суть проблемы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2013, 01:24     OutOfMemory при создании большого Bitmap
Еще ссылки по теме:
Ошибка при создании приложения Android
Android Краш при создании активности
Android Ошибка при создании RadioButton
Вылетает при создании потока Android
Ошибка при создании проекта Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
06.05.2013, 01:24  [ТС]     OutOfMemory при создании большого Bitmap #10
V0v1k, дело в том, что мне нужно чтобы канвас с отрисованной на нем графикой скроллился. Канвас достаточно большой, соответственно большим и получается битмап, на котором рисует канвас. На канвасе у меня рисуются точки, соединенные линиями. Координаты точек лежат в массиве. Сейчас попробовал сделать так, чтобы канвас не скроллился, а просто перерисовывались точки с учетом скролла (то есть от координат точек я просто отнимаю значения скролла). Но это тоже достаточно ресурсоемко, так как при каждом скролле весь канвас перерисовывается. Есть какие-нибудь идеи? Я уже даже готов отказаться от этого гребаного канваса...

Добавлено через 4 часа 54 минуты
Блин, сорри за поднятую панику)) Оказалось, это просто я туплю) Оказывается, можно рисовать на канвасе без какого либо битмапа...)) Но все равно всем спасибо за внимание!
Yandex
Объявления
06.05.2013, 01:24     OutOfMemory при создании большого Bitmap
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru