【发布时间】:2018-04-20 23:30:36
【问题描述】:
我正在尝试使用基本的拍照意图返回缩略图并将其设置为图像视图,如开发者网站上所示:
static final int REQUEST_IMAGE_CAPTURE = 1;
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
mImageView.setImageBitmap(imageBitmap);
}
}
希望我得到一个空对象引用
未能将结果 ResultInfo{who=null, request=1, result=-1, data=Intent { act=inline-data (has extras) }} 传递给活动 ... java.lang.NullPointerException: 尝试调用空对象引用上的虚拟方法'void android.widget.ImageView.setImageBitmap(android.graphics.Bitmap)' ...在“mImageView.setImageBitmap(imageBitmap);”行
更新:不仅仅是一个如何修复空对象的问题,更重要的是onActivityResult() 如何适应生命周期的其余部分。为什么在相机意图后调用onActivityResult() 时,Android 会忘记在onCreate() 和onResume 中分配mImageView = findViewById(R.id.image_view);? onActivityResult() 是否在活动生命周期中充当单独的特殊事件?如果是这样,https://developer.android.com/training/camera/photobasics.html 的开发人员指南应更新以包含该内容。
【问题讨论】:
-
您的图像视图为空?
-
你的 ImageView 在哪里 mImageView = findViewById(R.id.your_imageView);
标签: android android-camera-intent