我遇到了一个我无法解决的问题。如果你能帮助我,我将不胜感激。
我想创建一个应用程序,从图库中选择一个或多个图像,详细说明并将它们保存到文件夹中。
我遇到的问题是正确旋转图像。
当我选择一张图片时(请参阅下面的代码),该应用程序正确旋转图像。
如果我同时选择更多图像(请参阅下面的代码),我无法旋转它们,因为"旋转" (见下面的代码)总是0(零)。
要从图库中选择一张图片,我使用以下代码:
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, RESULT_LOAD_IMG);
In" OnActivityResult"我得到如下的URI路径:
Uri imageUri = data.getData();
要选择更多图像,我使用以下代码(不打开图库,只显示最近的图像,但我可以接受):
Intent intent = new Intent();
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);
In" OnActivityResult"我得到如下的URI路径:
ClipData mClipData = data.getClipData();
和" for":
ClipData.Item item = mClipData.getItemAt(i);
Uri imageUri = item.getUri();
要获得图像方向,请使用以下代码:
String[] orientationColumn = {MediaStore.Images.Media.ORIENTATION};
Cursor cur = getApplicationContext().getContentResolver().query(imageUri, orientationColumn, null, null, null);
int orientation = -1;
if (cur != null && cur.moveToFirst()) {
orientation = cur.getInt(cur.getColumnIndex(orientationColumn[0]));
}
注意:我尝试使用“ExifInterface”类,但它总是在我的Samsung S7 Android 7.0上返回0(零)。
我注意到选择一个图像的方法返回一个URI路径,如“content:// media / external / images / media / imageX”,而选择更多图像的方法会返回一条URI路径,如“content:// com.android.providers.media.documents /文件/ IMAGEX”。我不知道这是不是问题。
提前谢谢大家。
蒙特拉