Acceder a imágenes de la aplicación Fotos en mi aplicación Android

Al igual que el iPhone tiene un UIImagePickerController para permitir al usuario acceder a las imágenes almacenadas en el dispositivo, ¿tenemos un control similar en el SDK de Android?

Gracias.

Puede utilizar startActivityForResult , pasando un Intent que describe una acción que desea completar y el origen de datos para realizar la acción.

Por suerte para usted, Android incluye una Acción para recoger cosas: Intent.ACTION__PICK y una fuente de datos que contiene imágenes: android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI para las imágenes en el dispositivo local o android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI para las imágenes de la tarjeta SD.

Llamada startActivityForResult pasando en la acción de selección y las imágenes que desea que el usuario seleccione de esta manera:

 startActivityForResult(new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), SELECT_IMAGE); 

A continuación, anula onActivityResult para escuchar al usuario que ha realizado una selección.

 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == SELECT_IMAGE) if (resultCode == Activity.RESULT_OK) { Uri selectedImage = data.getData(); // TODO Do something with the select image URI } } 

Una vez que tengas la imagen Uri puedes usarla para acceder a la imagen y hacer lo que necesites hacer con ella.

También puede hacer:

 Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); photoPickerIntent.setType("image/*"); startActivityForResult(photoPickerIntent, 1); 

Esto recogerá imágenes en todos los almacenes.

Sólo una actualización a la respuesta dada por Reto. Usted podría hacer esto para escalar la imagen:

 private String getPath(Uri uri) { String[] data = { MediaStore.Images.Media.DATA }; CursorLoader loader = new CursorLoader(context, uri, data, null, null, null); Cursor cursor = loader.loadInBackground(); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } 
  • ¿Cómo obtengo el identificador de recurso de una imagen si conozco su nombre?
  • ¿Cómo puedo hacer que una imagen se agite / se mueva cuando se hace clic?
  • DiskLruCache de android tutorial falta muchos métodos.
  • Convertir mapa de bits en sepia en android
  • Convertir la matriz de bytes de 4 bits en escala de grises a Bitmap Android
  • Cargar foto en la galería como objeto de mapa de bits en Android
  • Mostrar imágenesVistas con tema de animación
  • Correspondencia entre las coordenadas de ImageView y Pixeles de mapa de bits - Android
  • ImageView: escala imágenes demasiado grandes hacia abajo, no escala imágenes demasiado pequeñas
  • OutOfMemoryError al cargar imágenes en RecyclerView
  • Recortar parte particular de la imagen en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.