如何使用camera预览
时间: 2023-10-03 18:05:53 浏览: 83
您可以使用Android Camera API来创建一个实时预览。您需要创建一个CameraPreview类,该类扩展了SurfaceView并实现了SurfaceHolder.Callback。在CameraPreview类中可以实现SurfaceView对象的创建和销毁,并且您可以设置相应的预览参数,例如使用后置摄像头。
以下是一个简单的示例代码片段:
```
public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {
private SurfaceHolder mHolder;
private Camera mCamera;
public CameraPreview(Context context, Camera camera) {
super(context);
mCamera = camera;
mHolder = getHolder();
mHolder.addCallback(this);
}
public void surfaceCreated(SurfaceHolder holder) {
try {
mCamera.setPreviewDisplay(holder);
mCamera.startPreview();
} catch (IOException e) {
Log.d(TAG, "Error setting camera preview: " + e.getMessage());
}
}
public void surfaceDestroyed(SurfaceHolder holder) {
mCamera.stopPreview();
mCamera.release();
}
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
if (mHolder.getSurface() == null) {
return;
}
try {
mCamera.stopPreview();
} catch (Exception e){
}
try {
mCamera.setPreviewDisplay(mHolder);
mCamera.startPreview();
} catch (Exception e){
Log.d(TAG, "Error starting camera preview: " + e.getMessage());
}
}
}
```
这个代码片段创建了一个CameraPreview类,并重写了SurfaceView的三个回调(surfaceCreated,surfaceDestroyed和surfaceChanged),在这些回调方法中可以设置相应的相机参数并启动实时预览。
阅读全文