2013-09-28 5 views
0

Hy, почему холст врезаться меня, если я сделать ширина * высота (2500 * 2500) я удивляюсь я не знаю, почему :(Canvas аварии на высоте 2500 * 2500

java.lang.OutOfMemoryError на андроида. graphics.Bitmap.nativeCreate (Native Method)

Это небольшие фотографии, но как я могу сделать, если я хочу обработать большие изображения, или как я могу найти максимальную границу размера холста? Помогите и помогите решить проблемы. Я думаю, что ширина * hight i can not change, потому что проблема с opengls, но я думаю, что я не могу найти границу, но я не знаю как?

+1

Вы подсчитали, насколько велика растровая карта для холста ARX 2500x2500? Около 25 МБ. Больше, чем размер кучи на большинстве устройств. Вам придется уменьшить размер и/или глубину цвета. – Simon

+0

[(Высота в пикселях) x (длина в пикселях) x (глубина бит)]/8/1024 = размер изображения в килобайтах (КБ). – JRowan

+0

как я могу рассчитать, насколько больше изображение? (ширина и высота) или как я могу решить проблему, просьба помочь. – Papi

ответ

1

Насколько я помню, аппаратное обеспечение Android должно хотя бы поддерживать 2048x2048.

Для OpenGL я использовал:

int[] maxSize = new int[1]; 
gl.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE, maxSize, 0); 
  • для Nexus 4 она равна 4096
  • Для Sansung 2 она равна 4096

Но что она должна отличаться от устройства к устройство

Смежные вопросы