返回

Android自定义相机(二):点击拍照,长按录制,调用系统相机录制

Android

前言

本章是针对相机系列一衍生的,都是基于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上自定义相机,包括点击拍照、长按录制以及调用系统相机录制功能。希望对大家有所帮助!