2012-11-03 14 views
1

我目前正在开发一款应用程序,用户可以通过拍照或上传照片来回答问题。安卓相机(从不同类别获取imageView)

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

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

回答

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设置为位图文件。

我希望这有助于!

+0

非常感谢!但在这里imageView.setImageBitmap(BitmapFactory.decodeFile(file));我应该把.decodeFile(AddPhotoActivity.file)); ??因为我从其他类中获取文件(AddPhotoActivity) –

+0

一种方法是当您调用活动时,可以使用startActivityForResult()。然后,你可以使用setResult()方法来放入额外的值。下面是一个[link](http://stackoverflow.com/questions/920306/sending-data-back-to-the-main-activity-in -android)引用setResult。或者你可以使用sharedPreferences。以下是引用sharedPreferences的[链接](http://mobile.tutsplus.com/tutorials/android/android-application-preferences/)。希望这可以运作 – chRyNaN

+0

这是否有帮助?如果是,请标记为已接受的答案 – chRyNaN