Files
anroid-CheckShot/需求表.md

39 lines
5.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### **巡检相机核心需求规格表**
| 模块 | 功能点/需求描述 | 可行性/技术备注 |
| :--- | :--- | :--- |
| **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 降级处理:** 拒绝定位权限时,允许手动输入地址作为水印,保障核心功能可用。 | **可行性高。** 仅需新增输入框与数据绑定逻辑,无技术风险,是优秀的用户体验设计。 |
---
### **配置页面功能点需求**
为了满足上述需求中的可配置项,并提升应用的用户体验,配置页面应包含以下功能:
| 功能分类 | 具体功能点 | 说明 |
| :--- | :--- | :--- |
| **水印设置** | **水印样式选择** | 提供一个列表,包含多种预设的水印样式(如“默认样式”、“醒目样式”、“简约样式”),用户点击即可预览和选择。 |
| | **地点校准方式** | 提供单选框,让用户选择地点信息的获取方式:<br>1. **联网查询校准** (默认)<br>2. **经纬度+距离校准** |
| **合成与文字设置** | **默认合成布局** | 允许用户设置一个默认的图片合成布局模板如“2x2网格”、“1+3布局”打开多图合成页面时自动应用。 |
| | **合成图片质量** | 提供一个滑块或选项,让用户选择合成图片的分辨率/清晰度(如“高清”、“标准”、“流畅”),对应不同的 JPEG 压缩质量参数。 |
| | **默认文字样式** | 分别为“标题”和“内容”提供预设的文字样式(字体、大小、颜色)选择,作为每次编辑时的默认值。 |
| **通用设置** | **默认巡检主题** | 提供输入框让用户预设一个默认的“巡检主题”如“XX项目日常巡检”在生成报告时自动填入用户也可临时修改。 |
| | **巡检员信息** | 提供输入框,让用户填写自己的姓名或工号,以便在水印或报告中包含该信息(此功能可作为扩展项)。 |
| | **关于** | 显示应用的版本号、开发者信息等。 |