Question

Je cherche un moyen de trouver des images sur la carte SD ou au moins des images prises par l'appareil photo.

La solution idéale serait d’obtenir une collection de chemins de fichiers ou d’URI pour les images. Je suppose que vous pouvez le faire via le MediaStore. Je ne peux tout simplement pas comprendre comment.

Merci

Était-ce utile?

La solution

Après avoir examiné plus d'exemples de MediaStore, j'ai trouvé cela et le travail est fait.

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;
}

Il renvoie l'URI de toutes les images ou l'URI de la vignette de toutes les images de la carte SD.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top