2011-01-11 14 views
5

Tengo algunas imágenes guardadas en la carpeta Imágenes de la tarjeta SD. Quiero acceder a esas imágenes de mi carpeta directamente.¿Cómo obtener miniatura de galera para una carpeta de imagen particular en android?

He utilizado el siguiente código para seleccionar imágenes de la galería directamente.

Intent intent = new Intent(Intent.ACTION_PICK); 

intent.setDataAndType(Uri.parse("file:///sdcard/Pictures/"), "image/*"); 

startActivityForResult(intent, 1); 

El código anterior está obteniendo todas las imágenes de la tarjeta SD. Pero solo necesito de mi carpeta Imágenes. También probé Intent.ACTION_GET_CONTENT, el mismo resultado.

Por favor, que alguien me corrija ...

Gracias.

+0

¿Recibió la respuesta ?, si es así por favor comparta .. – PiyushMishra

Respuesta

0

Este es el código que utilizo para seleccionar una imagen de la tarjeta SD

Intent intent = new Intent(); 
intent.setType("image/*"); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
startActivityForResult(Intent.createChooser(intent, "Select Picture"),JobActivity.SELECT_PHOTO); 

Nota esto carga la carpeta raíz.

Una vez que se selecciona una fotografía, se llama al método onActivityResult y se puede obtener la imagen.

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    try { 
     if (resultCode == RESULT_OK) { 
      if (requestCode == JobActivity.SELECT_PHOTO) { 
       Uri selectedImageUri = data.getData(); 
       String selectedImagePath = getPath(selectedImageUri); 
       getBitmap(selectedImagePath, 0); 
       // Log.d("Debug","Saved...." + selectedImagePath); 
      } 
     } 
    } catch (Exception e) { 
     Log.e("Error", "Unable to set thumbnail", e); 
    } 
} 

El método get Ruta

public String getPath(Uri uri) { 

    Cursor cursor = null; 
    int column_index = 0; 
    try { 
     String[] projection = { MediaStore.Images.Media.DATA }; 
     cursor = managedQuery(uri, projection, null, null, null); 
     column_index = cursor 
     .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
     cursor.moveToFirst(); 
    } catch (Exception e) { 
     Log.d("Error", "Exception Occured", e); 

    } 

    return cursor.getString(column_index); 
} 

Y por último para obtener el mapa de bits

public Bitmap getBitmap(String path, int size) { 
    BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inSampleSize = size; 
    Bitmap bitmap = BitmapFactory.decodeFile(path, options); 
    return bitmap; 
} 

La variable tamaño permite el escalado de la imagen por un factor. Si no desea escalar, simplemente elimine el parámetro de opciones.

No estoy seguro de cómo elegir entre otra carpeta que no sea la raíz.

Aquí es una entrada útil también Get/pick an image from Android's built-in Gallery app programmatically

Cuestiones relacionadas