obtener - mostrar imágenes en listview de android desde servidor
Cargue imágenes grandes en Bitmap? (5)
Intento hacer una aplicación básica que muestre una imagen de la cámara, pero cuando intento cargar el BitmapFactory.decodeFile
.jpg desde la tarjeta SD con BitmapFactory.decodeFile
, devuelve null.
No da un error de falta de memoria que me parece extraño, pero el mismo código funciona bien en imágenes más pequeñas.
¿Cómo muestra la galería genérica imágenes enormes de la cámara con tan poca memoria?
Intenta configurar inSampleSize como se muestra en este ejemplo .
Bueno, después de trabajar mucho, descubrí que el problema no era con el código, sino que el tamaño de ram del emulador, la edición de avd y el aumento del tamaño del ram resuelve todos los problemas y salva fácilmente las imágenes. Gracias.
Puedes seguir este increíble tutorial
http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
enviar:
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeFile(filePath, o);
int REQUIRED_SIZE = 640;
int width_tmp = o.outWidth, height_tmp = o.outHeight;
int scale = 1;
while(true) {
if (width_tmp < REQUIRED_SIZE && height_tmp < REQUIRED_SIZE) break;
width_tmp /= 2;
height_tmp /= 2;
scale *= 2;
}
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
Bitmap bitmap = BitmapFactory.decodeFile(filePath, o2);
ByteArrayOutputStream bs2 = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 90, bs2);
getIntent().putExtra("byte_picture", bs2.toByteArray());
recive
Bitmap photo = BitmapFactory.decodeByteArray(data.getByteArrayExtra("byte_picture"),0,data.getByteArrayExtra("byte_picture").length);
Aquí hay otra solución que usa inSampleSize y determina dinámicamente la resolución de la imagen para usar en función de la memoria disponible:
http://bricolsoftconsulting.com/handling-large-images-on-android/