实现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开发的路上越走越远!