Obtener imágenes de la galería en teléfonos android con almacenamiento interno

Hola Estoy desarrollando una aplicación de la Galería de Android donde estoy buscando imágenes de construido en galería y mostrándolo. Estoy usando el código como abajo

String[] projection = {MediaStore.Images.Thumbnails._ID}; Cursor cursor = getContentResolver().query(MediaStore.Images.Thumbnails.INTERNAL_CONTENT_URI, projection, // Which columns to return null, // Return all rows null, null); int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID); int size = cursor.getCount(); // If size is 0, there are no images on the SD Card. if (size == 0) { Log.e("size 0","0"); } 

El problema es cuando ejecuto este código en los teléfonos que sólo tienen almacenamiento interno (Galaxy Nexus) que estoy recibiendo Log que dice el tamaño como cero, aunque hay imágenes en construido en la galería. ¿Cómo resuelvo esto? Por favor ayuda.Gracias!

3 Solutions collect form web for “Obtener imágenes de la galería en teléfonos android con almacenamiento interno”

 String[] projection = {MediaStore.Images.Media._ID}; 

Reemplazar MediaStore.Images.Thumbnails.INTERNAL_CONTENT_URI con MediaStore.Images.MEDIA.EXTERNAL_CONTENT_URI

  Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, // Which columns to return null, // Return all rows null, null); int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID); int size = cursor.getCount(); // If size is 0, there are no images on the SD Card. if (size == 0) { Log.e("size 0","0"); } 

EDIT: Obtener la lista de miniaturas y obtener la imagen URI desde el cursor


 Uri uri=MediaStore.Images.Thumbnails.getContentUri("external"); Cursor cursor=MediaStore.Images.Thumbnails.queryMiniThumbnails (getContentResolver(), uri, MediaStore.Images.Thumbnails.MINI_KIND,null); if( cursor != null && cursor.getCount() > 0 ) { String uri = cursor.getString( cursor.getColumnIndex( MediaStore.Images.Thumbnails.DATA ) ); } 

Para obtener una lista de las imágenes de Galería puedes probar esto

 String[] projection = new String[]{ MediaStore.Images.Media._ID, MediaStore.Images.Media.BUCKET_DISPLAY_NAME, MediaStore.Images.Media.DATE_TAKEN }; Uri imageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; Cursor cur = getContentResolver().query(imageUri, projection, // Which columns to return null, // Which rows to return (all rows) null, // Selection arguments (none) null // Ordering ); Log.i("Images Count"," count="+cur.getCount()); 

Pruebe esto en su botón como "Examinar"

  browse.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent i = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(i, RESULT_LOAD_IMAGE); } }); 

Y también puede configurar la imagen seleccionada en ImageView como

  protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RESULT_LOAD_IMAGE && 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]); picturePath = cursor.getString(columnIndex); cursor.close(); imageView = (ImageView) findViewById(R.id.property_image); imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath)); } } 

En el primer bloque de código, utilizo startActivityForResult(i, RESULT_LOAD_IMAGE); Este resultado de retorno a la actividad llamada y podemos obtener este resultado por el segundo bloque de código, y establecer la imagen seleccionada en su ImageView

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