Android使用camera实现拍照后停留在预览界面的问题

本文介绍了一个简单的Android应用程序中实现拍照功能的方法。通过使用Camera API,文章详细解释了如何开始拍照、处理拍照后的回调以及如何保存拍摄的照片到设备的DCIM目录下。此外,还讨论了在录像过程中拍照的技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

camera实现拍照的代码:

 /**
     * 开始拍照
     */
    public void startCapture() {
        if (null != camera) {
            camera.takePicture(null, null, pictureCallback);
        }
    }

    private final Camera.PictureCallback pictureCallback = new Camera.PictureCallback() {

        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
            //
            if (data != null) {
                //解析生成相机返回的图片
                try {
                    File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
                    if (!dir.exists()) {
                        dir.mkdirs();
                    }
                    File mCaptureFile = new File(dir, System.currentTimeMillis() + ".jpg");
                    FileOutputStream fos = new FileOutputStream(mCaptureFile);
                    fos.write(data);
                    fos.close();
                    Toast.makeText(surfaceView.getContext(), "拍照成功", Toast.LENGTH_SHORT).show();
                } catch (Exception e) {
                    e.printStackTrace();
                    Toast.makeText(surfaceView.getContext(), "保存相片失败", Toast.LENGTH_SHORT).show();
                }
            } else {
                Toast.makeText(surfaceView.getContext(), "拍照失败,请重试", Toast.LENGTH_SHORT).show();
            }
           
        }
    };

运行起来会发现一个问题就是拍照完成后停留在预览界面,此时如果你不录像是没有问题的,但是如果你正在录像停留在当前界面是不是很尴尬,一番查找后只需要重新设置camera的参数就可以实现拍照完成后不预览画面,录像一直在进行是不是很爽

Camera.Parameters params = camera.getParameters();
            params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
            camera.setParameters(params);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值