martes, 12 de junio de 2012

Galería de Imágenes

En algunas de mis apps (no publicadas en el market todavía) he tenido que obtener todas las imágenes que hay guardas en la galería del dispositivo. Así que en este post les voy a compartir el código que he usado para ello.

private void getImagesFromGallery() {
        // propiedades que queremos hacer la query
        String[] projection = new String[] { MediaStore.Images.Media._ID,
                MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
                MediaStore.Images.Media.DATA };

        //Donde saco la info
        Uri images = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;

        // Obtenemos la info
        Cursor cur = managedQuery(images, projection, // Which columns to return
                "",
                null,
                ""
        );

        if (cur.moveToFirst()) {
            String bucket;
            String path;
            int bucketColumn = cur
          .getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME);
            int dataColumn = cur.getColumnIndex(MediaStore.Images.Media.DATA);
            do {
                bucket = cur.getString(bucketColumn); //nombre de la carpeta donde esta la img
                path = cur.getString(dataColumn);  // path de la imagen para luego mostrarla
                Log.i("imageInfo", "bucket=" + bucket + " path=" +path);
            } while (cur.moveToNext());
        }
    }

Con esta función ya pueden obtener las imágenes. Para decodificarla pueden usar la función que esta disponible en el post de Evitando OOM.

It works!

Roger Sala,


No hay comentarios:

Publicar un comentario