几乎每个App都有“拍照”“选图”的需求:头像、分享、扫码、证件。鸿蒙的相机与相册能力,覆盖了这些场景。
调用系统相机
- 简单方案:拉起系统相机(拍摄后返回图片);
- 通过Ability/意图(want)调用;
- 适合:快速拍照需求(无需自研相机UI);
- 返回:图片URI,读取并展示。
相机开发(CameraKit)
自研相机:CameraManager(相机管理);预览:XComponent绑定相机预览流;拍照:CaptureSession(拍照);录像:视频流录制;适合:需要自定义相机UI的应用(扫码、AR)。
相册选图
PhotoViewPicker:拉起系统相册选择图片;配置:选择模式(单张/多张)、媒体类型;返回:图片URI列表;读取:解码显示/上传。
图片处理
图片压缩:上传前压缩(尺寸/质量);裁剪:头像裁剪(圆形);格式转换:JPEG/PNG/WebP;权限:读取媒体需要权限(按需申请)。
常见问题
权限被拒:引导用户到设置开启;大图OOM:压缩后再加载(Image组件按需加载);URI失效:及时读取;隐私:拍照/选图用途说明(合规)。
鸿蒙相机与相册开发的路径:简单场景调系统、复杂场景用CameraKit、选图用Picker。权限规范、图片压缩、按需加载,体验才流畅。