如何在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上翻转相机预览