PDA

Ver la Versión Completa : ¿Reservar mas memoria para la aplicación?


bicho_visacoso
28/11/11, 10:42:26
Buenos días,

Estoy realizando una aplicación que permita ver fotos RAW en una tablet. Revelar la foto y luego realizar ajuster básicos como son el brillo, contraste, exposición...

El problema radica en que una foto normalita de unos 10Mpx a 16bits por color ocupa una friolera de 60MB de memoria. Cuando intento crear un byteBuffer de ese tamaño obtengo un error de memoria insuficiente.

Entiendo que Android considera la memoria un bien escaso y la máquina virtual la limita para cada aplicación, pero también supongo que habrá alguna manera de decirle que necesito más memoria. Minimo la memoria para cargar la foto, para un buffer que tenga la resolución de la pantalla sobre el que hacer los ajustes ya comentados y memoria para el bitmap que voy a mostrar en pantalla.

¿Alguien sabe cómo se hace?

Muchas gracias y un saludo.
David.

kriogeN
03/12/11, 16:38:30
¿Estás usando BitmapFactory? Si es así echale un vistazo a la clase BitmapFactory.Options, sobre todo a inTempStorage.

bicho_visacoso
06/12/11, 08:59:58
Hola, gracias por contestar. La solución que aportas no me sirve ya que yo lo que necesito no es trabajar con fotos en jpg si no con los valores de color de cada pixel (un array enorme con información de color de cada pixel).

De todos modos he encontrado la forma de solucionar el problema, si a alguien puede interesar consiste en trabajar en modo nativo. En este modo no hay limite de memoria más que la que tenga el dispositivo.

Tiene su lado malo y su lado bueno pero al menos tengo el proyecto rodando. En breves tendré una aplicación que permite el revelado de casi cualquier foto en formato RAW y hacer sobre ella modificaciones en los ajustes básicos (exposición, brillo, contraste, ...). Ojo, sobre la foto RAW, no sobre el thumb jpg que lleva incrustada que es lo que hacen las aplicaciones que hay actualmente. :D