该方法是从opencv的java接口中学得
不知道为什么,最后显示出来的效果基本不能用(卡顿)
效果如下:
主要思想:
将Camera.PreviewCallback获得的 实时数据byte[] 数组,显示到Surfaceview上(双缓冲,子线程画图),这样就可以在即将预览的数据做镜像处理;
问题描述:
一般情况下 我们会直接使用
camera.setPreviewDisplay(this.getHolder());
将surfaceHolder 和 Camera的数据关联起来;但并没有提供这个接口直接实现镜像
Camera权限;activity注册等细节就不多说了,下面是
完整代码(1、CameraView ;2、Activity中使用 CameraView)
1、 重写 SurfaceView ,实现相关逻辑:
package com.yongyida.fastversion;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.ImageFormat;
import android.graphics.Matrix;
import android.graphics.Rect;
import android.hardware.Camera;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import java.io.IOException;
/**
* @author Brandon on 2018/5/2
**/
public class CameraView extends SurfaceView implements Camera.