包含所有图像的 Android 文件夹的路径
Path to Android folder with all images
我正在尝试构建一项功能,将最新保存的图像从设备加载到应用程序中。
目前我正在使用这条路径 DCIM/Camera/
但它只存储相机拍摄的图像。是否有存储所有图像的文件夹? (屏幕截图、从网络或相机胶卷中保存的图像)
您可以让系统为您处理,而不是在文件夹中搜索图像。
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;
}
该方法将 return 当前由 MediaStore 索引的所有图像的图像路径列表,最新的在前。您需要 android.permission.READ_EXTERNAL_STORAGE
-权限才能正常工作!
我正在尝试构建一项功能,将最新保存的图像从设备加载到应用程序中。
目前我正在使用这条路径 DCIM/Camera/
但它只存储相机拍摄的图像。是否有存储所有图像的文件夹? (屏幕截图、从网络或相机胶卷中保存的图像)
您可以让系统为您处理,而不是在文件夹中搜索图像。
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;
}
该方法将 return 当前由 MediaStore 索引的所有图像的图像路径列表,最新的在前。您需要 android.permission.READ_EXTERNAL_STORAGE
-权限才能正常工作!