hpi*_*que 13 camera android gallery mediastore android-contentresolver
你如何获得Android设备的所有相机图像列表?
是通过MediaStore吗?怎么样?
hpi*_*que 37
图库应用通过使用获取的相机图像内容解析器超过Images.Media.EXTERNAL_CONTENT_URI和过滤由结果Media.BUCKET_ID.使用以下代码确定存储桶标识符:
public static final String CAMERA_IMAGE_BUCKET_NAME =
Environment.getExternalStorageDirectory().toString()
+ "/DCIM/Camera";
public static final String CAMERA_IMAGE_BUCKET_ID =
getBucketId(CAMERA_IMAGE_BUCKET_NAME);
/**
* Matches code in MediaProvider.computeBucketValues. Should be a common
* function.
*/
public static String getBucketId(String path) {
return String.valueOf(path.toLowerCase().hashCode());
}
Run Code Online (Sandbox Code Playgroud)
基于此,这是一个获取所有相机图像的片段:
public static List<String> getCameraImages(Context context) {
final String[] projection = { MediaStore.Images.Media.DATA };
final String selection = MediaStore.Images.Media.BUCKET_ID + " = ?";
final String[] selectionArgs = { CAMERA_IMAGE_BUCKET_ID };
final Cursor cursor = context.getContentResolver().query(Images.Media.EXTERNAL_CONTENT_URI,
projection,
selection,
selectionArgs,
null);
ArrayList<String> result = new ArrayList<String>(cursor.getCount());
if (cursor.moveToFirst()) {
final int dataColumn = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
do {
final String data = cursor.getString(dataColumn);
result.add(data);
} while (cursor.moveToNext());
}
cursor.close();
return result;
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请查看Gallery应用程序源代码的ImageManager和ImageList类.
| 归档时间: |
|
| 查看次数: |
29596 次 |
| 最近记录: |