Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get list of photo galleries on Android

I'm looking for: A list of the existing photo gallery names (hopefully their top thumbnail as well) The contents of the gallery (I can then load thumbnails and full size as needed)

How would I go about getting a list of the "Galleries" (don't know if that's the proper term in android for the groupings of images visible in the Gallery app...) and their contents? I need access to the gallery in it's structure without using the existing gallery display (I'm creating a totally new one, not an over layer to the photo requestor etc.)

I assume MediaStore.Images is where I need to be but I don't see anything that will give me the groupings...

like image 371
ima747 Avatar asked Nov 16 '10 15:11

ima747


People also ask

How do I get a list of images in a specific folder on Android?

You can use below code to get all images from specific folder. 1) First you need to define File object to get the storage and appened the name of the folder you want to read. File folder = new File(Environment. getExternalStorageDirectory().


1 Answers

Groupings are defined by MediaStore.Images.Media.BUCKET_DISPLAY_NAME. Here is the sample code to list the images and log their bucket name and date_taken:

// which image properties are we querying String[] projection = new String[] {         MediaStore.Images.Media._ID,         MediaStore.Images.Media.BUCKET_DISPLAY_NAME,         MediaStore.Images.Media.DATE_TAKEN };  // content:// style URI for the "primary" external storage volume Uri images = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;  // Make the query. Cursor cur = managedQuery(images,         projection, // Which columns to return         null,       // Which rows to return (all rows)         null,       // Selection arguments (none)         null        // Ordering         );  Log.i("ListingImages"," query count=" + cur.getCount());  if (cur.moveToFirst()) {     String bucket;     String date;     int bucketColumn = cur.getColumnIndex(         MediaStore.Images.Media.BUCKET_DISPLAY_NAME);      int dateColumn = cur.getColumnIndex(         MediaStore.Images.Media.DATE_TAKEN);      do {         // Get the field values         bucket = cur.getString(bucketColumn);         date = cur.getString(dateColumn);          // Do something with the values.         Log.i("ListingImages", " bucket=" + bucket                 + "  date_taken=" + date);     } while (cur.moveToNext());  } 
like image 83
Peter Knego Avatar answered Sep 23 '22 06:09

Peter Knego