Android: ottenere posizioni delle immagini
-
06-07-2019 - |
Domanda
Sto cercando un modo per trovare le immagini sulla scheda SD, o almeno le immagini scattate dalla fotocamera.
La soluzione ideale sarebbe ottenere una raccolta di percorsi di file o URI per le immagini. Immagino che tu possa farlo attraverso il MediaStore, non riesco proprio a capire come.
Grazie
Soluzione
Dopo aver esaminato altri esempi di MediaStore, ho pensato a questo e il lavoro è fatto.
protected ArrayList<Uri> GetImageList(boolean getThumbs)
{
ArrayList<Uri> images = new ArrayList<Uri>();
String columnType;
Uri contentType;
String[] columnNames;
if (getThumbs)
{
columnType = MediaStore.Images.Thumbnails._ID;
contentType = MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI;
}
else
{
columnType = MediaStore.Images.Media._ID;
contentType = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
}
columnNames = new String[]{columnType};
Cursor cursor = managedQuery(contentType, columnNames, null, null, null);
int columnIndex = cursor.getColumnIndexOrThrow(columnType);
for(int i = 0; i < cursor.getCount(); i++)
{
cursor.moveToPosition(i);
int id = cursor.getInt(columnIndex);
images.add(Uri.withAppendedPath(contentType, "" + id));
}
return images;
}
Restituisce l'Uri di tutte le immagini o l'Uri dell'anteprima di tutte le immagini sulla sdcard.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow