在Android中获取包含图片的目录列表可以通过以下步骤实现:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
private ArrayList<String> getImageDirectories() {
ArrayList<String> directories = new ArrayList<>();
String[] projection = {MediaStore.Images.Media.DATA};
String orderBy = MediaStore.Images.Media.DATE_TAKEN + " DESC";
Cursor cursor = getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
projection,
null,
null,
orderBy);
if (cursor != null) {
int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
while (cursor.moveToNext()) {
String imagePath = cursor.getString(columnIndex);
File imageFile = new File(imagePath);
String directoryPath = imageFile.getParent();
if (!directories.contains(directoryPath)) {
directories.add(directoryPath);
}
}
cursor.close();
}
return directories;
}
ArrayList<String> imageDirectories = getImageDirectories();
该方法使用MediaStore.Images.Media.EXTERNAL_CONTENT_URI
查询存储在外部存储器上的图片,并按照拍摄日期降序排列。然后,通过遍历Cursor获取每张图片的路径,提取其父目录路径,并将其添加到目录列表中。最后,返回包含图片的目录列表。
这种方法适用于获取存储在外部存储器上的图片目录列表。如果需要获取内部存储器上的图片目录列表,可以将MediaStore.Images.Media.EXTERNAL_CONTENT_URI
替换为MediaStore.Images.Media.INTERNAL_CONTENT_URI
。
腾讯云相关产品和产品介绍链接地址:
请注意,以上仅为示例,其他云计算品牌商也提供类似的产品和服务。
领取专属 10元无门槛券
手把手带您无忧上云