自定义摄像头预览功能
权限
动态权限略
<uses-permission android:name="android.permission.CAMERA" />
代码
- 使用SurfaceView
这里不能使用普通的View,因为要实时地显示摄像头捕获到的图像,简单来说View适合被动刷新的情况,SurfaceView适合主动刷新(在子线程里),其余的不多说了
- 获取相机
import android.hardware.Camera;
注意camera导包到这个,虽然过时了
private Camera getCamera() {
Camera camera;
try {
camera = Camera.open();
} catch (Exception e) {
camera = null;
}
return camera;
}
- 开始预览图像
private void setStartPreView(Camera camera, SurfaceHolder holder) {
try {
//把camera捕获到的图像显示在SurfaceView里
camera.setPreviewDisplay(holder);
//将预览效果横屏转为竖直的camera
camera.setDisplayOrientation(90);
camera.startPreview();
} catch (IOException e) {
e.printStackTrace();
}
}
</