我正在尝试将从相机拍摄的图像设置到 ImageView 中。我启动相机 Intent ,然后在 OnActivityResult 中收到 NullPointerException,我不明白该错误。
在这里,我启动相机 Intent 并将图像存储在手机的图库中:
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, "New Picture");
imageUri = context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
pictureActionIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, CAMERA_REQUEST);
现在,相机的图像标记保存在手机的图库中(高质量)。 在 onActivityResult 中,我想将图像放入 ImageView 中。这是我的代码:
else if (requestCode == CAMERA_REQUEST)
{
if (resultCode == RESULT_OK)
{
imageUri = data.getData();
try
{
Bitmap bitmap = Media.getBitmap(getContentResolver(), imageUri); //NullPointerException
myImageView.setImageBitmap(bitmap);
}
catch (IOException e)
{
e.printStackTrace();
}
我有一个 NullPointerException,为什么?请问我该如何解决?
最佳答案
这会使您的结果保存在 mediaStore 中,因此 data.getData();
将返回 NULL
:
pictureActionIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
删除它,您将获得在 ImageView 上显示的数据。但是,如果您直接从 data
获取图像,它的质量很差
关于android - 将从相机拍摄的图像设置为 ImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21239807/