HTC Hero上的相机预览演示

时间:2012-03-25 16:33:38

标签: android android-camera commonsware

如果我在HTC Hero(CyanogenMod 6.1.0)上运行此演示,我会从Camera.startPreview()方法获得RuntimeException。

这似乎与此处描述的问题相同:

Android Camera will not work. startPreview fails

换句话说,您需要在设置预览尺寸时切换宽度和高度。确实这样可行,但会在其他设备上破坏演示。

现在,我了解演示的目的是展示如何启动和运行相机预览(因此这个问题超出了它的范围)但是我想知道是否有一个干净的解决方法,因为我不喜欢我想在我的代码中加入“if HTC_HERO”样式逻辑(无论如何,我确定其他设备会有类似的行为)?

一个hack可能是捕获异常,然后用swapped params重新调用setPreviewSize()方法,但我希望找到一个更好的方法。

1 个答案:

答案 0 :(得分:1)

  

我不想在我的代码中加入“if HTC_HERO”样式逻辑(无论如何,我确定其他设备会有类似的行为)?

在某种程度上,这是不可避免的,如果你试图100%的设备运行100%的任意ROM mod,因为bug会比比皆是。

  

一个hack可能是捕获异常,然后用swapped params重新调用setPreviewSize()方法,但我希望找到一个更好的方法。

理论上,应该有一些通用预览大小代码来确定正确的大小并相应地配置SurfaceView。如果AOSP相机应用程序的代码是任何指示,则此代码将是巨大的,并且它仍然不可能在任何地方工作(例如,违规设备或ROM模块违反“通用”解决方案的作者所考虑的任何假设)。

您可能希望检查像ZXing的条形码扫描仪这样的项目,看看他们如何解决问题。