最近我购买了 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 种颜色效果。)
有人知道吗?