在Android中旋转屏幕时,无法使用Android Intent拍照

3
我可以帮助您翻译这段内容。该段落意为:“我有一个 Android 应用程序,在其中,我像这样在意图中拍摄一张图片:”。
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
startActivityForResult(takePictureIntent, actionCode);

然后我使用结果填充了一个ImageView。

现在我发现了一个bug,当我要拍照时,如果旋转屏幕并拍照,就无法在我的ImageView中得到结果。

只有在不旋转相机的情况下拍照,才能在ImageView中看到它。

如何解决这个问题?


你能提供一点你的代码吗?我通常使用startActivityForResults中的pictureIntent,然后像谷歌示例中那样检索图像:http://developer.android.com/training/camera/photobasics.html - Joris
我假设你有一个获取结果的方法。请确保文件位置没有因为旋转而被清除(也就是你正在错误的地方查找)。如果已经被清除,请将其保存到bundle中,并在onResume时从savedInstance重新初始化位置。 - IAmGroot
@Doomsknight - 把这个作为答案发布,这就是解决方案 :) - gurehbgui
@gurehbgui 哦,很酷。 :) 搞定了。我也遇到过这个问题,所以想起来了。 - IAmGroot
1个回答

0

我假设你有一个获取结果的方法。

确保文件位置没有因为旋转而被清除,因为这可能导致你在错误的位置查找。

我曾经遇到过这个问题。我设置了一个全局变量来保存照片的位置,然后把它传递给拍照的意图,并在返回时查看该位置以显示照片。

然而,如果你旋转屏幕,全局变量就会被销毁,所以当你获取结果时,它不再知道在哪里找到照片。

最好的方法是将其保存到已保存的实例中,并从savedInstance中的onResume重新初始化位置。

请参阅此处链接以了解如何执行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接