Camera2预览方向、拍照方向设置

发布时间 2023-07-20 09:32:29作者: xiaowang_lj

一、预览变形问题如何处理?

最简单方法:自定义TextureView

二、涉及到的相关api && 第三方app如何去进行适配?

1) Camera API1

我们可以通过setDisplayOrientation(int degress)来设置camera预览的方向。

 mCamera.setDisplayOrientation(Surface.ROTATION_180);

拍照方向,则是和setRotation有关。

mParameters.setRotation(rotation);

2) Camera API2

//设置拍照方向

captureBuilder.set(CaptureRequest.JPEG_ORIENTATION,rotation);

Camera2上,是没有接口直接设置预览方向的,所以,基本都是通过TextureView.setTransform(matrix) 或者setRotation接口来调整textureView的显示。

Matrix matrix = new Matrix();
        matrix.postRotate(180, mTextureView.getWidth()/2, mTextureView.getHeight()/2);
        mTextureView.setTransform(matrix);
        mTextureView.setRotation(180);