2026-02-08 14:08:15 +08:00
|
|
|
|
# LogCam 巡检相机项目
|
2026-02-08 00:32:18 +08:00
|
|
|
|
|
2026-02-08 14:08:15 +08:00
|
|
|
|
适配 Android API 32 的巡检相机应用示例。使用 CameraX 构建巡检拍照、自动水印、多图合成等核心流程,并提供配置页面对关键功能进行预设管理。
|
2026-02-08 00:32:18 +08:00
|
|
|
|
|
2026-02-08 14:08:15 +08:00
|
|
|
|
## 功能总览
|
|
|
|
|
|
|
|
|
|
|
|
| 模块 | 功能点 | 说明 |
|
|
|
|
|
|
|------|--------|------|
|
|
|
|
|
|
| 相机核心 | CameraX 拍照 | 基于 CameraX 实现拍照、自动对焦、曝光控制,兼容 API32 |
|
2026-02-08 20:03:20 +08:00
|
|
|
|
| 水印处理 | 自动时间水印 | 拍照完成后自动叠加时间水印;时间格式固定为 `yyyy年-MM月-dd日 HH:mm:ss` |
|
2026-02-08 14:08:15 +08:00
|
|
|
|
| 多图合成 | 2x2 网格模板 | 固定模板合成 4 张图片,支持自适应缩放、替换以及质量配置 |
|
|
|
|
|
|
| 文字编辑 | 标题/内容区域 | 合成图顶部和底部分别添加带矩形背景的标题/内容区域,使用 StaticLayout 智能换行 |
|
|
|
|
|
|
| 图片管理 | MediaStore 分区存储 | 拍摄 / 合成图片保存至系统相册,并可预览、分享,命名格式为 `巡检报告_{巡检主题}_{yyyyMMddHHmm}.jpg` |
|
2026-02-08 20:03:20 +08:00
|
|
|
|
| 权限管理 | 相机权限 | 仅申请 CAMERA 权限,避免华为安全检测警告 |
|
|
|
|
|
|
| 配置页面 | 预设项管理 | 设置页集中配置水印样式、合成质量等 |
|
2026-02-08 14:08:15 +08:00
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
2026-02-08 00:32:18 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
logcam/
|
|
|
|
|
|
├── app/
|
|
|
|
|
|
│ ├── src/main/
|
|
|
|
|
|
│ │ ├── java/com/example/app/
|
2026-02-08 14:08:15 +08:00
|
|
|
|
│ │ │ ├── CameraActivity.kt # 相机核心流程
|
|
|
|
|
|
│ │ │ ├── ImageCompositor.kt # 多图合成与文字叠加
|
|
|
|
|
|
│ │ │ ├── MainActivity.kt # 入口页,跳转相机
|
|
|
|
|
|
│ │ │ └── SettingsFragment.kt # 配置页面
|
2026-02-08 00:32:18 +08:00
|
|
|
|
│ │ ├── res/
|
|
|
|
|
|
│ │ │ ├── layout/
|
2026-02-08 14:08:15 +08:00
|
|
|
|
│ │ │ │ ├── activity_main.xml
|
|
|
|
|
|
│ │ │ │ └── fragment_settings.xml
|
2026-02-08 00:32:18 +08:00
|
|
|
|
│ │ │ ├── values/
|
|
|
|
|
|
│ │ │ │ ├── colors.xml
|
|
|
|
|
|
│ │ │ │ ├── strings.xml
|
|
|
|
|
|
│ │ │ │ └── themes.xml
|
2026-02-08 14:08:15 +08:00
|
|
|
|
│ │ │ └── drawable/
|
|
|
|
|
|
│ │ │ ├── circle_button_background.xml
|
|
|
|
|
|
│ │ │ ├── ic_camera.xml
|
|
|
|
|
|
│ │ │ └── ic_settings.xml
|
2026-02-08 00:32:18 +08:00
|
|
|
|
│ │ └── AndroidManifest.xml
|
|
|
|
|
|
│ └── build.gradle
|
|
|
|
|
|
├── build.gradle
|
|
|
|
|
|
├── settings.gradle
|
|
|
|
|
|
├── gradle.properties
|
2026-02-08 14:08:15 +08:00
|
|
|
|
└── .github/workflows/gradle-publish.yml
|
2026-02-08 00:32:18 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-08 14:08:15 +08:00
|
|
|
|
## 关键依赖
|
|
|
|
|
|
|
|
|
|
|
|
- **CameraX**:`androidx.camera:camera-*` 系列
|
|
|
|
|
|
- **Material Components**:UI 控件与样式
|
|
|
|
|
|
|
|
|
|
|
|
## 构建与运行
|
2026-02-08 00:32:18 +08:00
|
|
|
|
|
2026-02-08 14:08:15 +08:00
|
|
|
|
1. 克隆仓库:`git clone https://github.com/xiajid/logcam.git`
|
|
|
|
|
|
2. 在 Android Studio 中打开项目
|
|
|
|
|
|
3. 连接设备或启用模拟器
|
|
|
|
|
|
4. 运行 `app` 模块即可体验巡检相机功能
|
2026-02-08 00:32:18 +08:00
|
|
|
|
|
2026-02-08 14:08:15 +08:00
|
|
|
|
## 工作流
|
2026-02-08 00:32:18 +08:00
|
|
|
|
|
2026-02-08 20:03:20 +08:00
|
|
|
|
仓库包含 GitHub Actions 工作流 `.github/workflows/build.yml`,在 push 或 PR 时自动执行 Gradle 构建并上传调试 APK 供下载。
|
2026-02-08 00:32:18 +08:00
|
|
|
|
|
2026-02-08 20:03:20 +08:00
|
|
|
|
**华为安全优化(2026-02-08)**:移除所有位置权限和功能,仅保留相机权限,避免华为安全检测警告。
|
2026-02-08 14:59:58 +08:00
|
|
|
|
|
2026-02-08 14:08:15 +08:00
|
|
|
|
## 许可证
|
2026-02-08 00:32:18 +08:00
|
|
|
|
|
2026-02-08 14:08:15 +08:00
|
|
|
|
MIT
|
2026-02-08 20:03:20 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
*Last test build: Sun Feb 8 08:00:26 PM CST 2026*
|