我的一个屏幕中有一个 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 中的任何内容?或者几乎总是这样,我错过了什么?再次感谢您阅读本文。