0

我在 Galaxy S2 (android 2.3) 和 LG P500 (android 2.3) 上显示相机取景器时遇到了一些麻烦。我在 SurfaceView 上有一些噪音(干扰)。然而,结果照片没有这样的缺陷。

问题的看法

其他设备(包括 2.3 和 android 4 的 Galaxy S2 设备)工作正常。

不幸的是,我没有这样的设备,所以每次更改源代码后我都无法对其进行测试。也许有人已经有这个问题?

此外,我尝试使用三星远程测试实验室测试这个应用程序,但不幸的是,带有 android 2.3 的 Galaxy S2 被放在桌子上,他的相机变黑了(飞溅什么也没做)。在这种情况下,没有任何白色条带。

onCreate()

mSurfaceHolder = mSurfaceView.getHolder();
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mSurfaceHolder.addCallback(this);
...
mSurfaceView.setLayoutParams(lp);

onResume()

mCamera = Camera.open();
if (mCamera == null) {
    Toast.makeText(this, R.string.t_no_camera, Toast.LENGTH_SHORT).show();
    finish();
} else {
    mCamera.setDisplayOrientation(90);
    Parameters p = mCamera.getParameters();

    p.setFocusMode(Parameters.FOCUS_MODE_AUTO);
    prepareFlash();
    if (prepareResolution()) {
        Camera.Size size = getBestPreviewSize(mDisplay.getWidth(), mDisplay.getHeight(), p);
        if (size != null) {
            p.setPreviewSize(size.width, size.height);
        }
    }

    mCamera.setParameters(p);

    try {
        mCamera.setPreviewDisplay(mHolder);
    } catch (IOException e) {
        e.printStackTrace();
    }
    mCamera.startPreview();
}

surfaceCreated(SurfaceHolder 支架):

try {
    mCamera.setPreviewDisplay(holder);
} catch (IOException e) {
    e.printStackTrace();
}

任何想法?会是什么呢?我将不胜感激任何提示。

4

1 回答 1

1

您在人像模式下开始相机预览;具有此类预览的错误发生在不同的设备上。有时,这些错误会通过制造商的软件升级得到修复,有时则不会。有时,疯狂的变通办法可以解决问题。

为了安全起见,请坚持使用横向模式。也许您的应用程序可以保留预览活动不允许垂直(纵向)方向的设备/构建版本的黑名单。

请注意,您通常可以通过使用旋转图标、位图甚至文本标签来模拟纵向。

于 2013-10-16T15:09:47.803 回答