# CameraX 采集 站点:答源(https://www.dandroid.cn/) 原文:https://www.dandroid.cn/archives/21358 Canonical:https://www.dandroid.cn/archives/21358 作者:admin 发布日期:2023-09-26 最后更新:2023-09-26 16:08 分类:技术方案 内容类型:post 说明:本页是原文的纯文本镜像,供大模型与检索器完整读取;不含导航、广告、付费框。引用请以上方「原文」链接为准。 ## 正文 本篇介绍 回顾下Camera1,使用起来需要开发关注很多细节,Camera2可以帮助开发自动处理很多细节,可是使用上就特别复杂,Android就提供了Camerax,既简单又好用,本篇介绍下使用方法。 使用步骤 申请权限 动态申请: private void requestPermission() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) { return; } ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_REQUEST_CODE); } 打开Camera: mCameraProviderFuture = ProcessCameraProvider.getInstance(this); mCameraProviderFuture.addListener(new Runnable() { @Override public void run() { try { ProcessCameraProvider cameraProvider = mCameraProviderFuture.get(); Preview preview = new Preview.Builder().build(); ImageAnalysis imageAnalysis = new ImageAnalysis.Builder().setTargetResolution(new Size(1280, 720)).build(); CameraSelector cameraSelector = CameraSelector.Builder.fromSelector(CameraSelector.DEFAULT_FRONT_CAMERA).build(); cameraProvider.unbind(); cameraProvider.bindToLifecycle(MainActivity.this, cameraSelector, imageAnalysis, preview); preview.setSurfaceProvider(mPreview.getSurfaceProvider()); } catch (ExecutionException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } }, ContextCompat.getMainExecutor(this)); 这就是打开Camera,并且将采集数据渲染出来的全部代码了,很简单。 关闭Camera: try { mCameraProviderFuture.get().shutdown(); } catch (ExecutionException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } --- 由 答源 DAN 底座 1.4.1 生成 · 2026-11-13T02:46:29+00:00