Android相机(从不同的类获取imageView)

时间:2012-11-03 23:34:18

标签: android

我目前正在开发一款应用,用户可以通过拍照或上传相册中的照片来回答问题。

我分为两个类,即FulfillPhotoTaskActivity,AddPhotoActivity。 FulfillPhotoTaskActivity有imageView,addphoto按钮和保存按钮。 当我按下addphoto按钮时,它会转到AddPhotoActivity,我们可以选择两个选项(拍照或上传照片)。我完成了部分,如果用户按下拍照按钮,然后打开相机并拍照。我创建了onActivityResult来获取图像数据。但在很多例子中,在onActivityResult中他们也有imageView,比如setImageBitmap。

我的问题是,如何从AddPhotoActivity获取imageView并在FulfillPhotoTaskActivity中显示它,我已经为XML做了。

1 个答案:

答案 0 :(得分:0)

拍摄照片时,会将图像保存到文件中。您可以检索此图像文件,然后可以在FulfillPhotoTaskActivity中调用imageView并将imageView设置为文件中的图像。

以下代码将启动摄像头意图和文件到指定位置:

    File root = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Folder/SubFolder");

    String folder = root.toString(); 
    File file = new File(folder, "fileName" + ".jpg");
    Uri outputFileUri = Uri.fromFile(file);

    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);

    startActivityForResult(cameraIntent, 0);

现在,当用户拍照时,您知道它将保存在哪里。在您的FulfillPhotoTaskActivity中,您可以调用imageview:

    ImageView imageView = (ImageView)findViewById(R.id.YOUR_IMAGE_VIEW_ID);

最后,您可以将图像设置为imageview:

    imageView.setImageBitmap(BitmapFactory.decodeFile(file));

因此,您无需从AddPhotoActivity获取imageview。您只需要文件名。然后,您可以返回FulfillPhotoTaskActivity并将imageview设置为位图文件。

我希望这有帮助!