С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Добавлено через 27 минут
Разузнал, что можно создавать Bitmap только размером до 4096*4096. Неужели нельзя больше? Хотелось хотя-бы 50000 * 3000... =)) Или я уже совсем перегибаю? =)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2013, 22:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос OutOfMemory при создании большого Bitmap (Программирование Android):

Ошибка OutOfMemory в Service - Программирование Android
Используется Retrofit и GsonConverterFactory Есть фрагнмент поиска, при открытии запускается сервис и периодически(8 секунд)...

google map v2 outOfMemory - Программирование Android
Подскажите пожалуйста, в чём может быть проблема. При перемещении карты google v2 в скором времени наступает outOfMemory. Ссылаясь на этот...

Android OutOfMemory error while scaling big images - Программирование Android
Добрый день! Буду благодарна, если поможете решить небольшую проблемку. Имеется несколько изображений (около пяти), которые я...

Чек большого количества togglebutton при прогрессе seekBar тормозит - Программирование Android
Суть проблемы: есть 81 togglebutton у которых меняется background при помощи селектора. Эти кнопки чекаются за счет прогресса Seekbar....

При загрузке большого количества картинок библиотекой Picasso заканчивается память - Программирование Android
В общем делаю приложение, которое должно выводить посты пользователя. В этих постах есть картинки, все они должны качаться с интернета. Я...

Ошибка при создании файла - Программирование Android
witeObjectToFile(user, ctx.getApplicationContext().getFilesDir() + "/ds/dd.txt"); public void witeObjectToFile(Object object, String...

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

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

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

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

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

Добавлено через 4 часа 54 минуты
Блин, сорри за поднятую панику)) Оказалось, это просто я туплю) Оказывается, можно рисовать на канвасе без какого либо битмапа...)) Но все равно всем спасибо за внимание!
0
06.05.2013, 01:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2013, 01:24
Привет! Вот еще темы с ответами:

Краш при создании активности - Программирование Android
public class Main_Activity extends Activity { private class LogIn extends AsyncTask&lt;Void, Void, Void&gt; { @Override ...

Ошибка при создании приложения - Программирование Android
Решил научиться работать в Android Studio. Установил её, запустил, решил запустить простейшее приложение с выводом &quot;Hello World&quot;, но все...

Ошибка при создании класса - Программирование Android
Помогите пожалуйста найти решение проблемы. При создании SQLOpenHelper класса вылезает данная ошибка.

Вылетает при создании потока - Программирование Android
При выключенном Bluetooth, запуская приложение у меня включается блютуз, но выдаёт ошибку создания потока: 02-15 13:31:26.111...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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