MediaStore.Images.Media.getBitmap y fuera de error de memoria
Mi código de código es:
public Bitmap loadPhoto(Uri uri) { Bitmap scaled = null; try { scalled = Bitmap.createBitmap( MediaStore.Images.Media.getBitmap(getContentResolver(), uri), 0,0,90, 90); if (scaled == null) { return null; } } catch(Exception e) { } return scaled; }
Después de este. Muestra escala en ImageView. Cada imagen viene de la cámara del dispositivo.
- Android: inserta una matriz de imágenes de mapa de bits en la base de datos SQLite
- ¿"Bitmap.createScaledBitmap" convierte una imagen de 32 bits en 24 bits?
- Explicación del método getPixels para un mapa de bits en Android
- ¿Cómo obtengo el mapa de bits resultante de una imagen después de haber sido redimensionado en una vista de imagen con picasso
- Mejorando la velocidad de getpixel () y setpixel () en Android Bitmap
Cada vez, consigo el error: fuera de memoria después de que exhibo tres fotos de la cámara fotográfica. ¿Cómo resolver esto?
- Guardando una imagen grande en PNG
- Android: Guardar Bitmap en la Galería ==> Tiempo creado incorrectamente
- ¿Cómo limpiar un mapa de bits?
- Guardar Bitmap en un archivo - Xamarin, Monodroid
- inDither = true Android
- Configurar mapa de bits como fondo de la vista de texto - Android
- Fuera de memoria en una asignación de bytes (Bitmap como String al servicio web con jabón)
- DecodeByteArray y copyPixelsToBuffer no funcionan. SkImageDecoder :: Factory devuelto null
Intente utilizar BitmapFactory para solucionar el problema http://developer.android.com/reference/android/graphics/BitmapFactory.html
Para aquellos que buscan muestra de código:
private static int calculateInSampleSize( BitmapFactory.Options options, int reqWidth, int reqHeight) { // Raw height and width of image final int height = options.outHeight; final int width = options.outWidth; int inSampleSize = 1; if (height > reqHeight || width > reqWidth) { final int halfHeight = height / 2; final int halfWidth = width / 2; // Calculate the largest inSampleSize value that is a power of 2 and keeps both // height and width larger than the requested height and width. while ((halfHeight / inSampleSize) >= reqHeight && (halfWidth / inSampleSize) >= reqWidth) { inSampleSize *= 2; } } return inSampleSize; } public static Bitmap decodeSampledBitmapFromUri(Context context, Uri imageUri, int reqWidth, int reqHeight) throws FileNotFoundException { // Get input stream of the image final BitmapFactory.Options options = new BitmapFactory.Options(); InputStream iStream = context.getContentResolver().openInputStream(imageUri); // First decode with inJustDecodeBounds=true to check dimensions options.inJustDecodeBounds = true; BitmapFactory.decodeStream(iStream, null, options); // Calculate inSampleSize options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); // Decode bitmap with inSampleSize set options.inJustDecodeBounds = false; return BitmapFactory.decodeStream(iStream, null, options); }
El método MediaStore.getBitmap es un método de conveniencia que no especifica un tamaño de muestra al obtener el mapa de bits. Si está utilizando getBitmap (ContentResolver, Uri) y desea utilizar un tamaño de muestra, use ContentResolver para obtener el flujo de entrada y descodifique el mapa de bits como lo haría normalmente (calculando el tamaño de la muestra primero y luego cargando el tamaño de la muestra).
- Excepción: no se pudo resolver el atributo en el índice 6: TypedValue
- Android WebView no carga un archivo JavaScript, pero Android Browser lo carga bien