如何在android上使用矩阵相机预览翻转?

如何在android上使用矩阵相机预览翻转?,android,Android,我想要相机预览屏幕左右颠倒 首先,我的设备没有使用Camera.CameraInfo.Camera\u FRONT\u FRONT 因为,不支持前置摄像头,只支持后置摄像头和摄像头。打开(0) 请看我的main活动.class public class MainActivity extends Activity implements TextureView.SurfaceTextureListener { private Camera mCamera; private Textu

我想要相机预览屏幕左右颠倒

首先,我的设备没有使用
Camera.CameraInfo.Camera\u FRONT\u FRONT

因为,不支持
前置摄像头
,只支持
后置摄像头
摄像头。打开(0)

请看我的
main活动.class

public class MainActivity extends Activity implements TextureView.SurfaceTextureListener {
    private Camera mCamera;
    private TextureView mTextureView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.
        mTextureView = (TextureView) findViewById(R.id.camera_texture);
        mTextureView.setSurfaceTextureListener(this);
    }

    @Override
    public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) {
    int cameraId = 0;
    Camera.CameraInfo info = new Camera.CameraInfo();
    for (cameraId = 0; cameraId < Camera.getNumberOfCameras(); cameraId ++ ) {
        Camera.getCameraInfo(0, info);

        if (info.facing == Camera.CameraInfo.CAMERA_FACING_BACK) 
           break;
        }
    mCamera = Camera.open(cameraId);
    Matrix transform = new Matrix();

    Camera.Size previewSize = mCamera.getParameters().getPreviewSize();
    int rotation = getWindowManager().getDefaultDisplay().getRotaion();            
    switch (rotation) {
        case Surface.ROTATION_0:
            mCamera.setDisplayOrientation(90);
            mTextureView.setLayoutParams(new FrameLayout.LayoutParams(
                    previewSize.height, previewSize.width, Gravity.CENTER));
            transform.setScale(-1, 1, previewSize.height/2, 0);
            break;

        case Surface.ROTATION_90:
            mCamera.setDisplayOrientation(0);
            mTextureView.setLayoutParams(new FrameLayout.LayoutParams(
                    previewSize.width, previewSize.height, Gravity.CENTER));
            transform.setScale(-1, 1, previewSize.width/2, 0);
            break;

        case Surface.ROTATION_180:
            mCamera.setDisplayOrientation(270);
            mTextureView.setLayoutParams(new FrameLayout.LayoutParams(
                    previewSize.height, previewSize.width, Gravity.CENTER));
            transform.setScale(-1, 1, previewSize.height/2, 0);
            break;

        case Surface.ROTATION_270:
            mCamera.setDisplayOrientation(180);
            mTextureView.setLayoutParams(new FrameLayout.LayoutParams(
                    previewSize.width, previewSize.height, Gravity.CENTER));
            transform.setScale(-1, 1, previewSize.width/2, 0);
            break;
    }


    try {
        mCamera.setPreviewTexture(surfaceTexture);
    } catch (IOException t) {
    }

    mTextureView.setTransform(transform);
    Log.i("onSurfaceTextureAvailable", "Transform: " + transform.toString());

    mCamera.startPreview();

}
public类MainActivity扩展活动实现TextureView.SurfaceTextureListener{
私人摄像机麦卡梅拉;
私有纹理视图mTextureView;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局)。
mTextureView=(TextureView)findViewById(R.id.camera\u纹理);
mTextureView.setSurfaceTextureListener(此);
}
@凌驾
SurfaceTexture上的公共空心可用(SurfaceTexture SurfaceTexture,int-width,int-height){
int=0;
Camera.CameraInfo info=新建Camera.CameraInfo();
对于(cameraId=0;cameraId
这个来源只是自旋, 所以不是左右反转预览

我想要翻转相机预览

如何使用矩阵在android上翻转相机预览