### **巡检相机核心需求规格表**
| 模块 | 功能点/需求描述 | 可行性/技术备注 |
| :--- | :--- | :--- |
| **1. 相机核心模块** | **1.1 技术基底:** 使用 Android CameraX 库,以实现更好的兼容性和开发效率。 | **可行性高。** CameraX 是 Google 官方推荐的轻量化框架,技术成熟,兼容性好,开发效率高,无实现风险。 |
| | **1.2 核心能力:** 支持拍照、自动/手动对焦、曝光调节,保障拍摄稳定性。 | **可行性高。** 通过 CameraX 可快速实现,保障拍摄稳定与细节捕捉。 |
| **2. 水印处理模块** | **2.1 核心能力:** 拍摄后自动在照片左下角叠加时间与地点水印。 | **可行性高。** Canvas 绘制固定位置水印的方案成熟,无技术障碍。 |
| | **2.2 时间水印:** 基于 `System.currentTimeMillis()` 获取时间戳,格式固定为 "yyyy年-MM月-dd日 HH:mm:ss"。 | **可行性高。** Android 常规操作,技术成熟。 |
| | **2.3 地点水印:** 优先使用 Geocoder 联网解析地址;失败时降级显示经纬度。支持在设置中配置校准方式。 | **可行性高。** Geocoder 为原生接口,降级逻辑简单易实现。校准功能可通过算法或第三方SDK辅助,整体可行性高。 |
| | **2.4 样式规则:** 提供预设的水印样式(字体/颜色/透明度组合),用户仅可从列表选择。 | **可行性高。** 通过预设参数集实现,无需开放自定义接口,实现成本低。 |
| **3. 多图合成模块** | **3.1 布局规则:** 预设固定尺寸的布局模板(核心为 2x2 网格),合成时对图片进行自适应缩放/裁剪。 | **可行性高。** 通过 Bitmap 拼接和 Matrix 变换即可实现,逻辑清晰。 |
| | **3.2 核心能力:** 支持图片拼接、基于模板的布局编辑(替换/删除图片)、合成质量控制(分辨率/清晰度)。 | **可行性高。** 均为 Android 图片处理的常规方案,通过 Bitmap 压缩参数和操作即可实现,无技术难点。 |
| **4. 文字编辑模块** | **4.1 应用范围:** 仅针对合成后的图片,在顶部(标题)和底部(内容)添加带矩形背景的文字说明。 | **可行性高。** Canvas 绘制矩形和文字的方案成熟。 |
| | **4.2 智能换行:** 使用 `StaticLayout` 或 `Paint.breakText()` 实现文本在指定宽度内自动换行,禁止手动输入 `\n`。 | **可行性高。** `StaticLayout` 是 Android 原生提供的用于处理文字换行的工具,完全满足需求。 |
| | **4.3 自定义规则:** 支持从预设列表中选择文字样式(字体/大小/颜色)和位置。 | **可行性高。** 预设参数列表,用户选择后绑定至绘制逻辑,实现简单。 |
| **5. 图片管理模块** | **5.1 核心能力:** 支持拍摄/合成图片的本地存储、分类管理、预览、导出/分享。 | **可行性高。** 均为常规开发场景,可通过本地数据库、文件操作和系统分享 Intent 实现。 |
| | **5.2 适配要求:** 严格遵循分区存储规则,通过 `MediaStore` 将图片保存至系统相册,无需申请存储权限。 | **可行性高。** `MediaStore` 是 API32 官方推荐的图片存储方式,合规且无技术争议。 |
| | **5.3 命名规则:** 图片命名为 "巡检报告_{巡检主题}_{生成时间(yyyyMMddHHmm)}.jpg"。 | **可行性高。** 通过字符串拼接即可实现。 |
| **6. 板限管理模块** | **6.1 权限范围:** 相机权限 (`CAMERA`)、定位权限 (`ACCESS_FINE_LOCATION`/`ACCESS_COARSE_LOCATION`)。 | **可行性高。** 权限定义明确,符合应用功能需求。 |
| | **6.2 处理规则:** 遵循 Android 12+ 权限政策,按需申请并说明用途。 | **可行性高。** 使用 `ActivityResultContracts` API 可规范、高效地完成权限申请流程。 |
| | **6.3 降级处理:** 拒绝定位权限时,允许手动输入地址作为水印,保障核心功能可用。 | **可行性高。** 仅需新增输入框与数据绑定逻辑,无技术风险,是优秀的用户体验设计。 |
---
### **配置页面功能点需求**
为了满足上述需求中的可配置项,并提升应用的用户体验,配置页面应包含以下功能:
| 功能分类 | 具体功能点 | 说明 |
| :--- | :--- | :--- |
| **水印设置** | **水印样式选择** | 提供一个列表,包含多种预设的水印样式(如“默认样式”、“醒目样式”、“简约样式”),用户点击即可预览和选择。 |
| | **地点校准方式** | 提供单选框,让用户选择地点信息的获取方式:
1. **联网查询校准** (默认)
2. **经纬度+距离校准** |
| **合成与文字设置** | **默认合成布局** | 允许用户设置一个默认的图片合成布局模板(如“2x2网格”、“1+3布局”),打开多图合成页面时自动应用。 |
| | **合成图片质量** | 提供一个滑块或选项,让用户选择合成图片的分辨率/清晰度(如“高清”、“标准”、“流畅”),对应不同的 JPEG 压缩质量参数。 |
| | **默认文字样式** | 分别为“标题”和“内容”提供预设的文字样式(字体、大小、颜色)选择,作为每次编辑时的默认值。 |
| **通用设置** | **默认巡检主题** | 提供输入框,让用户预设一个默认的“巡检主题”(如“XX项目日常巡检”),在生成报告时自动填入,用户也可临时修改。 |
| | **巡检员信息** | 提供输入框,让用户填写自己的姓名或工号,以便在水印或报告中包含该信息(此功能可作为扩展项)。 |
| | **关于** | 显示应用的版本号、开发者信息等。 |