拍照后设置缩略图到ImageView

Set thumbnail to ImageView after taking the picture

我正在尝试开发一个应用程序(使用 master/detail 流模板),在详细信息片段中有一个 ImageView 显示相机拍摄的图像。

对于此选项,我在 ActionBar 中添加了一个按钮,用于打开一个对话框并询问用户是否希望使用相机添加图像。所以对于这个选项,我做了这两个方法,当用户点击确定时调用。但是,(在这里我现在犯了很大的错误)我对如何在让我的 ImageIcon 显示从相机检索到的缩略图结束时调用 onActivityResult() 一无所知。 (如 developer.android 教程所示)

如果你们中有人知道我做错了什么,我会很高兴听到你们能给我的所有解决方案,因为我无法在任何地方找到解决这个问题的方法。

private void dispatchTakePictureIntent() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
        onActivityResult(REQUEST_IMAGE_CAPTURE, RESULT_OK, takePictureIntent);
    }
}

@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");
        ImageView mImageView = (ImageView) findViewById(R.id.imageView1);
        mImageView.setImageBitmap(imageBitmap);
    }
}

非常感谢!!!

您必须根据 onActivityResult 中收到的位图创建缩放位图。您将获得有关如何创建缩放位图的信息 Here

您可以根据需要设置宽度和高度

imageBitmap = Bitmap.createScaledBitmap(realImageBitmap, final_width, final_height, false);
imageView.setImageBitmap(imageBitmap);

您不必显式调用 onActivityResult。当 child/successor activity 立即完成其任务时,在父 activity 中调用 onActivityResult 方法。因此,当您的图像拍摄 activity 将完成任务时,它会自动调用一个 "requestCode" 和图像数据(如果您的图像拍摄 activity 拍摄一张照片,否则它将为空)。 有关 onActivityResult 的更多详细信息,请参阅 here.

要将缩略图设置为图像视图,您可以按以下方式执行此操作。

Bitmap photo = (Bitmap) data.getExtras().get("data"); 
imageView.setImageBitmap(photo);

你可以看到这个tutorial关于如何使用意图拍摄图像。

快乐编码