Imágenes de selección de Android de la galería

Quiero crear un selector de imágenes de la galería. Yo uso el codigo

intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, TFRequestCodes.GALLERY); 

Mi problema es que en esta actividad y los archivos de vídeo se muestran. ¿Hay una manera de filtrar los archivos mostrados para que no se muestren archivos de vídeo en esta actividad?

Absolutamente. Prueba esto:

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

Así llamo a la galería de imágenes. Póngalo y vea si funciona para usted.

EDITAR:

Esto abre la aplicación Documentos. Para permitir que el usuario también utilice las aplicaciones de la galería que hayan instalado:

  Intent getIntent = new Intent(Intent.ACTION_GET_CONTENT); getIntent.setType("image/*"); Intent pickIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); pickIntent.setType("image/*"); Intent chooserIntent = Intent.createChooser(getIntent, "Select Image"); chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] {pickIntent}); startActivityForResult(chooserIntent, PICK_IMAGE); 

A veces, no puede obtener un archivo de la imagen que elija. Es porque el elegido proviene de Google+, Drive, Dropbox o cualquier otro proveedor.

La mejor solución es pedirle al sistema que seleccione un contenido a través de Intent.ACTION_GET_CONTENT y obtenga el resultado con un proveedor de contenido.

Usted puede seguir el código abajo o mirar mi esencial actualizado .

 public void pickImage() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, PICK_PHOTO_FOR_AVATAR); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == PICK_PHOTO_FOR_AVATAR && resultCode == Activity.RESULT_OK) { if (data == null) { //Display an error return; } InputStream inputStream = context.getContentResolver().openInputStream(data.getData()); //Now you can do whatever you want with your inpustream, save it as file, upload to a server, decode a bitmap... } } 
 public void FromCamera() { Log.i("camera", "startCameraActivity()"); File file = new File(path); Uri outputFileUri = Uri.fromFile(file); Intent intent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); startActivityForResult(intent, 1); } public void FromCard() { Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(i, 2); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 2 && resultCode == RESULT_OK && null != data) { Uri selectedImage = data.getData(); String[] filePathColumn = { MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String picturePath = cursor.getString(columnIndex); cursor.close(); bitmap = BitmapFactory.decodeFile(picturePath); image.setImageBitmap(bitmap); if (bitmap != null) { ImageView rotate = (ImageView) findViewById(R.id.rotate); } } else { Log.i("SonaSys", "resultCode: " + resultCode); switch (resultCode) { case 0: Log.i("SonaSys", "User cancelled"); break; case -1: onPhotoTaken(); break; } } } protected void onPhotoTaken() { // Log message Log.i("SonaSys", "onPhotoTaken"); taken = true; imgCapFlag = true; BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 4; bitmap = BitmapFactory.decodeFile(path, options); image.setImageBitmap(bitmap); } 

Puede utilizar este método para seleccionar la imagen de la galería. Sólo se mostrarán las imágenes.

 public void pickImage() { Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI); intent.setType("image/*"); intent.putExtra("crop", "true"); intent.putExtra("scale", true); intent.putExtra("outputX", 256); intent.putExtra("outputY", 256); intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); intent.putExtra("return-data", true); startActivityForResult(intent, 1); } 

Y anula onActivityResult como

  @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode != RESULT_OK) { return; } if (requestCode == 1) { final Bundle extras = data.getExtras(); if (extras != null) { //Get image Bitmap newProfilePic = extras.getParcelable("data"); } } } 

Si sólo está buscando imágenes y selección múltiple.

Mira @ una vez https://stackoverflow.com/a/15029515/1136023

Es útil para future.I personalmente me siento muy bien utilizando MultipleImagePick .

U puede hacerlo más fácil que esto responde:

 Uri Selected_Image_Uri = data.getData(); ImageView imageView = (ImageView) findViewById(R.id.loadedimg); imageView.setImageURI(Selected_Image_Uri); 
  • Instagram como desplazamiento en la galería personalizada
  • Intención para obtener múltiples imágenes
  • Android - guardar la imagen en la galería
  • Infinite Scrolling Galería Ver con descripción de texto
  • (R.dimen.padding_medium) ¿No se puede resolver o no es un campo?
  • La imagen, guardada en sdcard, no aparece en la aplicación Galería de Android
  • Galería / AdaptadorEnvío de dibujo infantil
  • Galería de imágenes de url en android?
  • SDK de Android: ¿referencia la aplicación de galería del teléfono?
  • Crear un nuevo álbum en la galería y guardar las imágenes en ella
  • Android Cómo ver doc de sdcard en gallary?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.