菜鸟笔记6——Camera改装,去掉内含类,重构程序。扩充暂停。

 在google给的Tutorial里,(点击:http://code.google.com/p/openmobster/wiki/CameraTutorial)

camera preview的screen由一个内部类CameraSurfaceView提供。

这段程序没有考虑拍完一张拍下一张的需要,因为setPreviewDisplay(SurfaceHolder holder)的参数为SurfaceHolder类对象。Surface holder的实例化又恰恰放在了内部类里。导致外部类不能频繁调用preview().

事实上,Android自带的Camera程序里也有很多内部类,但没有CamerSurfaceView类或者类似功能的类,程序也并不依靠interface SurfaceHolder.Callback

的anbstract method

surfaceCreated();surfaceChanged();surfaceDestoryed();

来实现preview和re-preview!

代码修改当中,依然是不报错,运行挂掉。改好了再贴。

Tutorial的代码怎么改都不行,preview的建立改用http://developer.android.com/reference/android/hardware/Camera.html的流程,setPreviewDisplay()的说明留在这里备忘:

坏消息是现在预览还是靠surfaceCreated()和surfaceChanged()实现。好消息是退出程序时的错误对话框问题有所解决,以前对Back,Home键的处理是override onPause()和onStop()程序。安插在onPause()中得Toast不能弹出,说明onPause()未执行。在onPause()中添加一句 super.onPause();后Toast弹出。说明onPause()起码部分执行了,但是程序意外停止的对话框还是会弹出来。貌似是sdk为2.3.3而手机固件为2.3.4的关系。

你可能感兴趣的:(菜鸟笔记6——Camera改装,去掉内含类,重构程序。扩充暂停。)