我有代码供用户使用Intent.ACTION_GET_CONTENT
选择图库照片,但是如果用户从“最近”或“图库”中选择,则方向会有所不同。我创建了意图:
Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT, null);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, Globals.UPLOAD_PHOTO_EXISTING);
在onActivityResult
中,我使用以下代码确定图像的方向:
Uri uri = data.getData();
InputStream inputStream = getContentResolver().openInputStream(uri);
String[] orientationColumn = {MediaStore.Images.Media.ORIENTATION};
Cursor cur = getContentResolver().query(uri, orientationColumn, null, null, null);
int orientation = -1;
Matrix matrix = new Matrix();
if (cur != null && cur.moveToFirst()) {
orientation = cur.getInt(cur.getColumnIndex(orientationColumn[0]));
}
Log.i(LOG_TAG, "orientation = " + orientation);
matrix.postRotate(orientation);
当我从图库中选择图像时,我得到270的正确方向,但是当我从最近选择相同的图像时,计算的方向为0.为什么图库和最近的图像之间存在差异?
更新
以下是使用Intent.ACTION_GET_CONTENT
时的选择。 “最近”选项会调出本地存储在手机上的图像。如果我从Recent或Gallery中选择完全相同的照片,为什么Uri
会有所不同?