如果我在grifika的ContinuousCaptureActivity中使用预览方式,相机预览的范围会更小

时间:2015-06-29 11:12:23

标签: android android-camera preview grafika

我们知道,当相机预览比率设为4:3而不是16:9时,我们会在同一距离获得更大的预览区域,详情如下:

Android Camera API - Weird zoom effect

但是当我使用opengl使用android相机预览时遇到了问题,这是下面提到的第二种方式。

有两种实现相机预览的方法:

  1. 没有opengl的传统方式,只需使用Camera.setPreviewTexture(SurfaceTexture texture)Camera.setPreviewDisplay(SurfaceHolder holder)
  2. ContinuousCaptureActivity使用opengl的方式,我们使用API​​ swapBuffers()渲染预览图片。
  3. 第一种方法是好的,如果预览比例从16:9变为4:3,我会发现预览字段会变大。

    然而,第二种方式在一些Android手机中不行,当预览比率改变时预览字段保持不变,并且预览字段小于比率4:3的第一路。 我坚持认为这是一个错误,我想非常好地解决这个问题,谁可以给我一些建议?

1 个答案:

答案 0 :(得分:3)

经过一番奋斗,我终于找到了确切原因,它是API Camera.Parameters.setRecordingHint(true)

当我在源代码中删除此子句时,预览字段变得正常。

总之,API Camera.Parameters.setRecordingHint(true)是某些Android设备中的错误。

对于某些设备,如果预览比率设置为4:3(使用API​​ Camera.Parameters.setPreviewSize(int,int)),则调用API setRecordingHint(true)将导致相机预览字段变小。