实现Android相机预览拍照功能

整体流程

下面是实现Android相机预览拍照功能的步骤:

步骤 描述
1 获取相机权限
2 打开相机预览
3 拍照
4 保存拍摄的照片

具体步骤

步骤一:获取相机权限

在AndroidManifest.xml文件中添加相机权限:

<uses-permission android:name="android.permission.CAMERA" />

步骤二:打开相机预览

在布局文件中添加一个SurfaceView用于显示相机预览:

<SurfaceView
    android:id="@+id/surfaceView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

在Activity中获取SurfaceView并打开相机预览:

SurfaceView surfaceView = findViewById(R.id.surfaceView);
Camera camera = Camera.open();
camera.setDisplayOrientation(90);
try {
    camera.setPreviewDisplay(surfaceView.getHolder());
    camera.startPreview();
} catch (IOException e) {
    e.printStackTrace();
}

步骤三:拍照

在Activity中添加拍照按钮,并设置点击事件:

Button captureButton = findViewById(R.id.captureButton);
captureButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        camera.takePicture(null, null, pictureCallback);
    }
});

步骤四:保存拍摄的照片

在Activity中实现PictureCallback接口用于保存拍摄的照片:

Camera.PictureCallback pictureCallback = new Camera.PictureCallback() {
    @Override
    public void onPictureTaken(byte[] data, Camera camera) {
        File pictureFile = new File(Environment.getExternalStorageDirectory().getPath() + "/picture.jpg");
        try {
            FileOutputStream fos = new FileOutputStream(pictureFile);
            fos.write(data);
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
};

总结

通过以上步骤,你可以实现Android相机预览拍照功能。记得在使用相机之后要及时释放资源,调用Camera.release()方法。希望这篇文章对你有所帮助,祝你在Android开发的路上越走越远!