android调用系统拍照
2015-06-16 11:36
267 查看
1.
需要权限:
有些机型可能还需要下面的权限(我测试的时候没有加小米平板16G拍照返回data为null):
2.拍照回来后奔溃
最近写程序时用到了系统拍照获取照片,发现调用相机拍完照片返回时,触发它的activity的生命周期调用了onDestroy()–>onCreate();重新走了onCreate()方法;导致系统崩溃。
需要权限:
[code]<uses-permission android:name="android.permission.CAMERA" />
有些机型可能还需要下面的权限(我测试的时候没有加小米平板16G拍照返回data为null):
[code]<uses-feature android:name="android.hardware.camera" />
2.拍照回来后奔溃
最近写程序时用到了系统拍照获取照片,发现调用相机拍完照片返回时,触发它的activity的生命周期调用了onDestroy()–>onCreate();重新走了onCreate()方法;导致系统崩溃。
[code]方法一: 刚开始调用了onSaveInstanceState(Bundle savedInstanceState)和onRestoreInstanceState(Bundle savedInstanceState)这个方法来实现,虽然方法比较笨,但是可以通过在onSaveInstanceState中保存一些你需要的变量,在onCreate()方法中判断savedInstanceState是否为null,不为null则调用onRestoreInstanceState()方法取出之前存的变量来使用,这相当于重新加载了一边当前activity。
[code]方法二: 上面的方法可行,但并不是解决问题的根本办法,后来通过查看发现在调用相机时,activity从竖屏切换到了横屏,在横竖屏切换导致了activity重新装载,找到根本原因后,在activity中通过android:configChanges="orientation|keyboardHidden" 这个属性,可以约束调用相机时,保持当前activity竖屏状态不变,从而解决了activity重新加载的问题。
相关文章推荐
- 【Android测试】【随笔】在手机里用命令行创建中文文件夹
- Android 零碎
- android调用系统拍照
- Android、iPhone和Java三个平台一致的加密工具
- Android 自定义控件
- 关于Android studio打包发布,以及Android签名的获取
- Android自定义控件(状态提示图表) (转)
- 查看Android内存的8中方法
- Android ListView滑动过程中图片显示重复错乱闪烁问题解决
- 八款开源Android游戏引擎
- Android首选项
- Android让文本自动滚动实现
- Android开发中的ANR问题如何避免?
- Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
- android 比较靠谱的图片压缩
- android ContentObserver监听系统短信和备份短信到本地
- 一些有用的学习链接(AndroidStudio)
- Android PowerImageView实现,可以播放动画的强大ImageView
- android Handler 的使用
- android 技术总结 图片优化 sqlite使用 Fragment使用