junjun071308 2015-01-09 02:49 采纳率: 0%
浏览 10037

关于竖屏相机调用横版拍照的系统相机问题

在我的程序里面,有个Activity是锁定竖屏的,点击拍照按钮,将会调用系统的相机进行拍照,现在遇到的问题是:如果这个系统相机是默认横屏拍照的,那么在程序跳转会发生横竖屏切换,在拍照返回结果的时候,我的Activity被重新创建了!

试过这个方法:

下面记录一下开发中遇到的问题,说道这里不得不吐槽一下三星的相机,调用之后系统会调用ondestroy导致activity被销毁重建,原因是系统调用了一次横竖屏切换,解决方法如下

方法一:刚开始调用了onSaveInstanceState(Bundle savedInstanceState)和onRestoreInstanceState(Bundle savedInstanceState)这个方法来实现,虽然方法比较笨,但是可以通过在onSaveInstanceState中保存一些你需要的变量,在onCreate()方法中判断savedInstanceState是否为null,不为null则调用onRestoreInstanceState()方法取出之前存的变量来使用,这相当于重新加载了一边当前activity。

方法二:上面的方法可行,但并不是解决问题的根本办法,后来通过查看发现在调用相机时,activity从竖屏切换到了横屏,在横竖屏切换导致了activity重新装载,找到根本原因后,在activity中通过android:configChanges="orientation|keyboardHidden" 这个属性,可以约束调用相机时,保持当前activity竖屏状态不变,从而解决了activity重新加载的问题。


但是并不起作用。在拍照的时候,还是会出现问题。

另外也试过这个:http://www.zhihu.com/question/21541629(android 调用三星i9300系统相机出现Activity 自动onDestory?)

这个方案能保证Activity不被销毁,但是无法区分是拍照结果是取消还是确定,因为每一次调用返回的都是同一个值

所以想问一下,有没有什么处理方法
(我观察过,QQ也是调用系统相机,但是他不敢是在三星手机还是在其他手机上面,都能够很好的兼容,而58和赶集则是采用自己定义的相机,可能很大的原因就是避开系统相机的兼容性,更何况各种其他第三方相机)
http://ask.csdn.net/#

  • 写回答

3条回答 默认 最新

  • WorldMobile 2015-01-09 04:50
    关注

    建议你直接调用系统相机,就可以避过这个问题了

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?