2

我的一个屏幕中有一个 FrameLayout。我在我的代码中这样引用它:

preview = (FrameLayout)findViewById(R.id.preview);

我在 FrameLayout 中嵌入了一个 CameraPreview 对象(扩展了 SurfaceView,来自 ZBar SDK 用于 QR 解析),如下所示:

scanner.setConfig(0, Config.Y_DENSITY, 3);
mPreview = new CameraPreview(this, mCamera, getPreviewCallback(), autoFocusCB);
if(preview.getChildCount()>=1)
preview.removeAllViews();
preview.addView(mPreview);

现在,当我在我的一款测试手机三星 Galaxy 3(GT-I5801) 上运行它时,一切正常,并且 QR 解析正常。但如果我用三星 Galaxy S2 或三星 Ace 扫描它,该应用程序最初会以低分辨率或无法对焦的相机启动。如果我把它放在一个非常明亮的屏幕上,它也无法自动调整它的白平衡。但是,如果我从“相机”选项卡导航到应用程序中的另一个选项卡并返回,相机就会开始正常工作。

任何解决此问题的帮助将不胜感激。与屏幕或相机分辨率有关吗?或者如果有人知道,ZBar SDK 中的任何内容?或者几乎总是这样,我错过了什么?再次感谢您阅读本文。

4

1 回答 1

0

我查看了来源,似乎它试图开始连续自动对焦,但这并不适用于任何地方。而我对安卓相机的经验是,即使宣传了功能,也不意味着它可以工作并且可以使用(在分辨率设置上被烧毁了一次)。在配置相机时,您必须尽可能地进行防御并为问题做好准备。

我为 JavaOCR 项目开发了我自己的摄像头管理,它似乎工作正常(虽然 IU 不能保证它可以在任何地方工作,但你可以参考示例):

http://javaocr.svn.sourceforge.net/viewvc/javaocr/trunk/demos/

(如果你不喜欢自己编译,这个应用程序是建立在这个库上的:

https://play.google.com/store/apps/details?id=de.pribluda.android.ocrcall&feature=search_result#?t=W251bGwsMSwyLDEsImRlLnByaWJsdWRhLmFuZHJvaWQub2NyY2FsbCJd

于 2012-09-12T06:04:12.727 回答