【发布时间】:2017-12-04 17:21:58
【问题描述】:
我是 Android 新手。我在选择图像和返回结果时遇到问题。我有一个方法是getImageFromGallery() 我的范围是这个方法调用然后我将从图库中选择一个图像并作为位图返回。但问题是onActivityResult() 在该位图返回后设置位图。如果我选择一个图像,则应返回该选定的图像位图文件。请帮助找出解决方案。
这是我的代码。private Bitmap bitmap;
public Bitmap getImageFromGallery(){
Intent i = new Intent(
Intent.ACTION_PICK,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, RESULT_LOAD_IMAGE);
return bitmap;}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
bitmap = BitmapFactory.decodeFile(picturePath);
}
}
我想返回选定的位图值。
【问题讨论】:
-
“如果我选择一个图像,那么应该返回那个选择的图像位图文件”——这是不可能的。
startActivityForResult()不是阻塞调用。如果您在onActivityResult()中获得一张图片,您将需要调整您的应用程序逻辑以便能够使用该图片。 -
@CommonsWare 那么如何处理这个问题呢?我们可以保留返回直到图像设置为
bitmap -
"那该如何处理呢?" -- 正如我所写,如果您在
onActivityResult()中获得图像,您将需要调整您的应用程序逻辑以便能够使用该图像。您不能编写返回位图的方法。 “我们可以保留返回,直到图像设置为位图” - 不,抱歉。
标签: java android image android-studio bitmap