我正在创建一个应用程序,其中一部分是用户可以通过拍照或使用原生图库中的一个来更改其个人资料图片。
所以我使用原生相机,我使用以下代码行打开相机视图
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(image_saved_destination));
startActivityForResult(intent, CAMERA_REQUEST_CODE);
因此,它会一直覆盖外部存储上的相同文件。
这一点工作正常,直到我将我的一个设备上的操作系统更新为棒棒糖。现在,当我使用相机时,如果我将它保持在肖像中并拍摄照片并保存方向,当它返回到我的应用程序翻转从横向到纵向。但是,当相机打开时,如果我将手机放在风景中并拍摄照片并单击保存,它将返回到没有方向异常的应用程序。
由于方向被改变和改变,我失去了活动的状态,因此我的变量等会丢失,这是处理图像数据所必需的。
有没有人遇到过这个?
答案 0 :(得分:3)
ACTION_IMAGE_CAPTURE意图和活动更改之间的轮换根本与新的Android camera2 API无关。这只是Android的意图系统的标准行为以及活动之间的切换。
听起来新的操作系统附带了一个新版本的原生相机应用程序,它改变了它在管理屏幕方向方面的行为。您应该查看管理方向和其他配置更改的标准方法:http://developer.android.com/guide/components/activities.html#ConfigurationChanges
这些将允许您自己处理方向更改而不是重新启动活动的操作系统,或者允许您将私有数据存储到onCreate中提供给您的包中。
答案 1 :(得分:-1)
更好您使用相机API创建自己的自定义相机。如果您再次遇到相同的问题,则可以使用相机预览的setDisplayOrientation。更多访问Android - Camera preview is sideways