我正在使用相机,我正在使用文档中给出的完全相同的示例: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html
我使用Android 3.1和3.2在Xoom上运行该示例。
我的问题是当我锁定并解锁Xoom时,相机不会回来。在锁定平板电脑之前,图像与最后一张图像保持一致,红灯也没有回来。
如果有人能帮助我,我将不胜感激。
答案 0 :(得分:8)
通过锁定和解锁,您的意思是当屏幕休眠或按下设备电源开关使设备进入睡眠状态然后再次唤醒?
如果是这样,我怀疑您需要释放onPause中的相机资源,然后通过表面视图回调再次在onResume中开始预览。
在Android 2.2和2.3应用程序中,我使用相机来处理我使用的模式:
onCreate:
- get reference to the camera
onResume:
- sv = (SurfaceView)this.findViewById(R.id.capture_SurfaceView);
mHolder = sv.getHolder();
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mHolder.setSizeFromLayout();
mHolder.addCallback(this);
surfaceChanged:
- Camera.setPreviewDisplayHolder()
- Camera.startPreview()
onPause:
- Camera.stopPreview
- SurfaceHolder.removeCallback()
- Camera.release()
这对我来说非常适合我在设备关闭然后重新开启,或者我的应用程序否则将进入后台。
答案 1 :(得分:0)
一种解决方案可能是在onResume()中将surfaceview设置为不可见且可见,这会使surfaceview破坏并重新创建。