3

最近我购买了 Nexus 7 第 2 版并测试了我的应用程序。除相机模块外,所有功能均正常工作。

实际上,我在拍照时没有问题,但问题发生在 setColorEffect() 中。如您所知,此功能是为相机设置颜色效果,surfaceview 应反映此更改。

我毫不怀疑您正在使用以下功能来设置颜色效果:

                Camera.Parameters _param = mCamera.getParameters();

                if (isSupported(android.hardware.Camera.Parameters.EFFECT_MONO, _param.getSupportedColorEffects())) {
                    Log.e(TAG, "color effect is supported...");
                    _param.setColorEffect(android.hardware.Camera.Parameters.EFFECT_MONO);
                    _param.setJpegQuality(90);

                    //_param.set("effect", "mono"); // KEY_EFFECT
                    mCamera.setParameters(_param);
                }

我将上面的代码放在 surfaceChanged() 和此处推荐的其他地方,但它不起作用,甚至我没有错误也没有异常。在更改预览大小后,我还强制触发了 surfaceChanged() 函数。下面是 surfaceChanged() 函数:

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
if (mHolder.getSurface() == null){
    return;
}

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

}

奇怪的是,场景模式更改正在起作用。

在测试 Nexus 7 2 之前,我在 Galaxy S3 下测试了我的应用程序和上面的代码,它运行良好。

我已经测试了大约 3-4 个来自互联网的相机示例,包括谷歌提供的,都没有工作。(仅供参考:Nexus 7 第 2 版提供大约 9 种颜色效果。)

有人知道吗?

4

0 回答 0