Files
anroid-CheckShot/README.md

3.2 KiB
Raw Blame History

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

关键依赖

  • CameraXandroidx.camera:camera-* 系列
  • Google Play Services Location:获取实时位置
  • Material ComponentsUI 控件与样式

构建与运行

  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 供下载。

许可证

MIT