返回
Android自定义相机(二):点击拍照,长按录制,调用系统相机录制
Android
2023-12-17 21:30:08
前言
本章是针对相机系列一衍生的,都是基于camera自定义的。可能网上也有很多资料或者文章,但是看完这两篇文章,你也肯定学会了自定义相机这块(仿微信点击拍照,长按录制);而且我觉得我文章的最大优势是用最简单的语言去代码。那么接下来同样是图文并茂。如果大家没有看相机系列一,强烈建议先看下,可以更快的理解代码。
需求说明
- 点击拍照
- 长按录制
- 调用系统相机录制
实现步骤
点击拍照
@Override
public void onClick(View v) {
takePicture();
}
private void takePicture() {
// 先对焦
camera.autoFocus(new Camera.AutoFocusCallback() {
@Override
public void onAutoFocus(boolean success, Camera camera) {
// 对焦成功,拍照
camera.takePicture(null, null, new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
// 保存照片
savePicture(data);
}
});
}
});
}
长按录制
@Override
public void onLongClick(View v) {
startRecording();
}
private void startRecording() {
// 开始录制视频
camera.startRecording();
}
调用系统相机录制
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, REQUEST_VIDEO_CAPTURE);
注意事项
- 在使用自定义相机时,需要在AndroidManifest.xml文件中添加相应的权限:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
- 在使用自定义相机时,需要在代码中设置相机的输出目录:
File outputFile = new File(Environment.getExternalStorageDirectory(), "my_video.mp4");
camera.setOutputFile(outputFile);
- 在使用自定义相机时,需要在代码中设置相机的分辨率:
camera.setPreviewSize(640, 480);
camera.setPictureSize(640, 480);
总结
本文介绍了如何在Android上自定义相机,包括点击拍照、长按录制以及调用系统相机录制功能。希望对大家有所帮助!