2015-05-24 46 views
0

我試圖構建一個功能,將最新保存的圖像從設備加載到應用程序中。 目前我使用此路徑DCIM/Camera/,但它只存儲攝像頭拍攝的圖像。有沒有存儲所有圖像的文件夾? (屏幕截圖,從網絡或照相機卷中保存的圖像)所有圖像的Android文件夾路徑

+0

posibble重複http://stackoverflow.com/questions/26751041/android-external-sdcard-dcim-folder-path – JozeRi

+0

我沒有看到任何投降或關閉它的理由。而@JozeRi你的副本也不適合。 –

回答

3

不用在文件夾中搜索圖像,您可以讓系統爲您負責。

Android會自行索引大多數媒體數據(圖片,音樂等),並提供Content Providers來查詢這些數據庫。可以使用MediaStore.Images.Media-provider

public List<String> getImagePaths(Context context) { 
    // The list of columns we're interested in: 
    String[] columns = {MediaStore.Images.Media.DATA, MediaStore.Images.Media.DATE_ADDED}; 

    final Cursor cursor = context.getContentResolver(). 
      query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, // Specify the provider 
        columns, // The columns we're interested in 
        null, // A WHERE-filter query 
        null, // The arguments for the filter-query 
        MediaStore.Images.Media.DATE_ADDED + " DESC" // Order the results, newest first 
      ); 

    List<String> result = new ArrayList<String>(cursor.getCount()); 

    if (cursor.moveToFirst()) { 
     final int image_path_col = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
     do { 
      result.add(cursor.getString(image_path_col)); 
     } while (cursor.moveToNext()); 
    } 
    cursor.close(); 

    return result; 
} 

該方法將返回當前由MediaStore與最新的第一個索引的所有圖像的圖像路徑的列表。您需要獲得android.permission.READ_EXTERNAL_STORAGE的許可才能使用!

相關問題