Android SDK有一个用于使用相机预览的API演示。但是,这给了我模拟器中的运行时异常。我在Mac上运行Eclipse 10.6
这是我抓住代码的链接:
答案 0 :(得分:7)
确保您已在AndroidManifest.xml文件中设置了使用相机的权限。将此行放在应用程序标记上方。
<uses-permission android:name="android.permission.CAMERA" />
答案 1 :(得分:4)
我在Nexus One上工作了。
如果您正在尝试编写一个Camera应用程序,那么API演示应用程序将无法提供足够的帮助。下载Android Camera应用程序本身的源代码:
https://android.googlesource.com/platform/packages/apps/Camera
关于您的问题,您将学习的是,您需要将应用限制在清单中的横向模式。在SurfaceChanged中,只需调用startPreview。根本不要设置预览大小。
答案 2 :(得分:0)
关于NexusOne崩溃。
正如 Corey Trager 在评论中提到的那样,在查看2.1 SDK附带的ApiDemos软件包时,缺少权限不是问题。
我发现此问题的一个解决方案只是在CameraPreview中更改请求的预览尺寸
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h){..}
替换此行:
parameters.setPreviewSize(w,h);
与
parameters.setPreviewSize(352,288);
此决议是G1 DevPhone合法使用的法律解决方案。
答案 3 :(得分:0)
您可以使用
List<Camera.Size> getSupportedPreviewSizes ()
从列表中选择大小
答案 4 :(得分:0)
Google Code Android defects中也提到了这个问题,它可能对您(其中一条评论的底部提到的代码)有所帮助,作为处理预览问题的可能解决方案。