Files
anroid-CheckShot/README.md

73 lines
3.4 KiB
Markdown
Raw 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.
# LogCam 巡检相机项目
适配 Android API 32 的巡检相机应用示例。使用 CameraX 构建巡检拍照、自动水印、多图合成等核心流程,并提供配置页面对关键功能进行预设管理。
## 功能总览
| 模块 | 功能点 | 说明 |
|------|--------|------|
| 相机核心 | CameraX 拍照 | 基于 CameraX 实现拍照、自动对焦、曝光控制,兼容 API32 |
| 水印处理 | 自动时间 / 地点水印 | 拍照完成后自动叠加时间、地点水印;时间格式固定为 `yyyy年-MM月-dd日 HH:mm:ss` |
| 水印样式 | 预设样式选择 | 预设字体大小/颜色/透明度组合,通过设置页选择 |
| 地点校准 | 经纬度/联网校准 | 设置页面提供“经纬度 + 距离校准”和“联网查询校准”两种方式,支持手动输入经纬度 |
| 多图合成 | 2x2 网格模板 | 固定模板合成 4 张图片,支持自适应缩放、替换以及质量配置 |
| 文字编辑 | 标题/内容区域 | 合成图顶部和底部分别添加带矩形背景的标题/内容区域,使用 StaticLayout 智能换行 |
| 图片管理 | MediaStore 分区存储 | 拍摄 / 合成图片保存至系统相册,并可预览、分享,命名格式为 `巡检报告_{巡检主题}_{yyyyMMddHHmm}.jpg` |
| 权限管理 | 相机/定位权限 | 按需申请 CAMERA 与定位权限,拒绝定位权限时允许手动输入经纬度 |
| 配置页面 | 预设项管理 | 设置页集中配置地点校准方式、水印样式、合成质量、文字样式等 |
## 项目结构
```
logcam/
├── app/
│ ├── src/main/
│ │ ├── java/com/example/app/
│ │ │ ├── CameraActivity.kt # 相机核心流程
│ │ │ ├── ImageCompositor.kt # 多图合成与文字叠加
│ │ │ ├── LocationManagerHelper.kt# 位置服务封装
│ │ │ ├── MainActivity.kt # 入口页,跳转相机
│ │ │ └── SettingsFragment.kt # 配置页面
│ │ ├── res/
│ │ │ ├── layout/
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── fragment_settings.xml
│ │ │ ├── values/
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ └── drawable/
│ │ │ ├── circle_button_background.xml
│ │ │ ├── ic_camera.xml
│ │ │ └── ic_settings.xml
│ │ └── AndroidManifest.xml
│ └── build.gradle
├── build.gradle
├── settings.gradle
├── gradle.properties
└── .github/workflows/gradle-publish.yml
```
## 关键依赖
- **CameraX**`androidx.camera:camera-*` 系列
- **Google Play Services Location**:获取实时位置
- **Material Components**UI 控件与样式
## 构建与运行
1. 克隆仓库:`git clone https://github.com/xiajid/logcam.git`
2. 在 Android Studio 中打开项目
3. 连接设备或启用模拟器
4. 运行 `app` 模块即可体验巡检相机功能
## 工作流
仓库包含 GitHub Actions 工作流 `.github/workflows/gradle-publish.yml`,在 push 或 PR 时自动执行 Gradle 构建并上传调试 APK 供下载。
**最新修复2026-02-08**:已解决 GitHub Actions 构建时出现的 Gradle 仓库配置冲突,确保构建流程正常执行。
## 许可证
MIT