2017-01-01 5 views
1

Так я этот код для получения изображений с MediaStore:как установить Mediastore, чтобы получить изображение из определенной папки на андроид

int dataIndex = mMediaStoreCursor.getColumnIndex(MediaStore.Files.FileColumns.DATA); 

mMediaStoreCursor.moveToPosition(position); 
String dataString = mMediaStoreCursor.getString(dataIndex); 
Uri mediaUri = Uri.parse("file://" + dataString); 
return mediaUri; 

Это хорошо получает все изображения в папке картинок, я хотел бы изменить это чтобы получить все изображения в определенной папке, которые будут переданы в виде строки. например { android/picture/specificfolder/}

+0

Возможный дубликат [Uri.parse ("file: //" + ???); для доступа к определенной папке] (http://stackoverflow.com/questions/43335103/uri-parsefile-to-access-specific-folder) – fadysi92

ответ

0

Проверить это post

Это совет использовать курсор и передать папку, необходимую в проекции.

соответствующий ответ от Teh сообщение:

mediaCursor = getContentResolver().query(MediaStore.Files.getContentUri("external"), 
 
       null, 
 
       MediaStore.Images.Media.DATA + " like ? ", 
 
       new String[] {"%YOUR_FOLDER_NAME%"}, 
 
       null);

0

Вы можете использовать следующий метод -

public List<String> getFromSdcard() 
{ 
    ArrayList<String> imagePaths = new ArrayList<String>();// list of file paths 
    File[] listFile; 
    File file= new 

    File(android.os.Environment.getExternalStorageDirectory(),"android/picture/specificfolder/"); 

    if (file.isDirectory()) 
    { 
     listFile = file.listFiles(); 


     for (int i = 0; i < listFile.length; i++) 
     { 

      imagePaths.add(listFile[i].getAbsolutePath()); 

     } 
    } 
    return imagePaths; 
} 

к извлечь изображения используйте

List<String> sample = getFromSdcard(); 

    for(int i=0; i<sample.size() ; i++){ 
     final Uri image = Uri.parse("file://"+sample(i).toString()); 
    }