拍照后将缩略图设置为ImageView

时间:2015-01-02 05:51:27

标签: android imageview android-camera

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

对于此选项,我在ActionBar中添加了一个按钮,用于打开一个对话框,并询问用户是否希望使用相机添加图像。因此,对于此选项,我在用户单击“确定”时调用了这两个方法。然而,(我现在在这里犯了很大的错误)我不知道如何调用onActivityResult()结束让我的ImageIcon显示从相机中检索到的缩略图。 (正如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);
    }
}

感谢很多!!!!

3 个答案:

答案 0 :(得分:0)

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

的信息

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

您不必显式调用onActivityResult。当紧接子/后继活动完成其任务时,在父活动中调用的onActivityResult方法。因此,当您的图像拍摄活动完成任务时,它会自动调用" requestCode"和图像数据(如果您的图像拍摄活动拍照,否则它将为空)。 有关onActivityResult的更多详细信息,请参阅here

要将缩略图设置为imageview,您可以通过以下方式执行此操作。

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

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

快乐编码