Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android obtener miniatura de la imagen almacenada en sdcard cuyo camino se conoce

Digamos que tengo una imagen almacenada en la ruta "/mnt/images/abc.jpg" . ¿Cómo obtengo el mapa de bits de miniatura generado por el sistema para esta imagen. Sé cómo obtener la miniatura de una imagen de su Uri, pero no de su ruta de archivo

  • ¿Cómo obtener una miniatura para el video en mi / sdcard / Android / datos / mi carpeta / carpeta de archivos?
  • Obtener imagen ThumbNail en Android
  • ¿Cómo forzar a la aplicación a crear una miniatura (instantánea) para la lista de aplicaciones recientes?
  • Get thumbnail Uri / ruta de acceso de la imagen almacenada en la tarjeta sd + android
  • Android obtener la miniatura de vídeo PATH, no Bitmap
  • 5 Solutions collect form web for “Android obtener miniatura de la imagen almacenada en sdcard cuyo camino se conoce”

    Puede probar con esto:

     public static Bitmap getThumbnail(ContentResolver cr, String path) throws Exception { Cursor ca = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] { MediaStore.MediaColumns._ID }, MediaStore.MediaColumns.DATA + "=?", new String[] {path}, null); if (ca != null && ca.moveToFirst()) { int id = ca.getInt(ca.getColumnIndex(MediaStore.MediaColumns._ID)); ca.close(); return MediaStore.Images.Thumbnails.getThumbnail(cr, id, MediaStore.Images.Thumbnails.MICRO_KIND, null ); } ca.close(); return null; } 

    Usted puede obtener el Uri de un archivo como este:

     Uri uri = Uri.fromFile(new File("/mnt/images/abc.jpg")); Bitmap thumbnail = getPreview(uri); 

    Y la siguiente función le da la miniatura:

     Bitmap getPreview(Uri uri) { File image = new File(uri.getPath()); BitmapFactory.Options bounds = new BitmapFactory.Options(); bounds.inJustDecodeBounds = true; BitmapFactory.decodeFile(image.getPath(), bounds); if ((bounds.outWidth == -1) || (bounds.outHeight == -1)) return null; int originalSize = (bounds.outHeight > bounds.outWidth) ? bounds.outHeight : bounds.outWidth; BitmapFactory.Options opts = new BitmapFactory.Options(); opts.inSampleSize = originalSize / THUMBNAIL_SIZE; return BitmapFactory.decodeFile(image.getPath(), opts); } 

    Podría ser una forma alternativa como otros ya habían mencionado en su respuesta, pero la manera fácil que encontré para obtener miniatura está utilizando ExifInterface

      ExifInterface exif = new ExifInterface(pictureFile.getPath()); byte[] imageData=exif.getThumbnail(); if (imageData!=null) //it can not able to get the thumbnail for very small images , so better to check null Bitmap thumbnail= BitmapFactory.decodeByteArray(imageData,0,imageData.length); 

    Usted puede simplemente crear thumbnail video e imagen usando ThumnailUtil clase de java

     Bitmap resized = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(file.getPath()), width, height); public static Bitmap createVideoThumbnail (String filePath, int kind) 

    Añadido en el nivel de API 8 Cree una miniatura de vídeo para un vídeo. Puede devolver null si el video está dañado o el formato no es compatible.

    Parámetros filePath la ruta del tipo de archivo de vídeo podría ser MINI_KIND o MICRO_KIND

    Para obtener más código fuente de la clase de utilidad de miniaturas

    Developer.android.com

    Utilice la clase de mapa de bits de android y su método createScaledBitmap .

    Método descroption:

     public static Bitmap createScaledBitmap (Bitmap src, int dstWidth, int dstHeight, boolean filter) 

    Ejemplo de uso:

     Bitmap bitmap = BitmapFactory.decodeFile(img_path); int origWidth = bitmap.getWidth(); int origHeight = bitmap.getHeight(); bitmap = Bitmap.createScaledBitmap(bitmap, origWidth / 10, origHeight / 10, false); 

    Disminuya el archivo de origen como desee. En mi ejemplo lo reduje 10 veces.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.