✅ 编译成功 - 所有代码已修复并可正常构建 ✅ 循环播放问题已解决 - 动画只播放一次后自动停止 ✅ 配置化管理 - 可以轻松调整动画时长
- 触发方式: 每次拍照时自动播放
- 播放时长: 2.5秒(可配置)
- 播放次数: 只播放一次,不循环
- 显示效果: 全屏覆盖,播放完成后自动隐藏
编辑 app/src/main/java/com/android/example/cameraxbasic/config/AnimationConfig.kt:
const val WEBP_ANIMATION_DURATION = 2500L // 改为你需要的时长(毫秒)常用时长参考:
1500L= 1.5秒2000L= 2秒2500L= 2.5秒(当前设置)3000L= 3秒4000L= 4秒
const val DEBUG_ANIMATION = true // true=开启,false=关闭-
构建应用:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home ./gradlew assembleDebug -
安装到设备:
adb install app/build/outputs/apk/debug/app-debug.apk
-
测试拍照:
- 点击屏幕任意位置拍照
- 观察WebP动画是否播放
- 确认动画播放完成后停止
-
调整时长(如需要):
- 观察动画实际播放时长
- 修改
WEBP_ANIMATION_DURATION值 - 重新构建和测试
adb logcat | grep "SimpleWebPAnimation""开始播放WebP动画,持续时间: XXXXms"- 动画开始播放"停止动画"- 动画停止"手动停止动画"- 手动停止(如连续拍照)
# 查看内存使用
adb shell dumpsys meminfo com.android.example.cameraxbasic
# 查看CPU使用
adb shell top | grep cameraxbasicA: 修改AnimationConfig.kt中的WEBP_ANIMATION_DURATION值
A: 检查:
analyze.webp文件是否在app/src/main/res/drawable/目录- 设备Android版本是否支持(需要API 28+)
- 查看日志是否有错误信息
A: 这是正常的,连续拍照会停止当前动画并开始新的动画
A: 将新的WebP文件重命名为analyze.webp,替换原文件即可
app/src/main/
├── res/drawable/
│ └── analyze.webp # 你的动画文件
├── java/.../config/
│ └── AnimationConfig.kt # 动画配置
├── java/.../views/
│ └── SimpleWebPAnimationView.kt # 动画播放器
└── res/layout/
├── camera_ui_container.xml # 竖屏布局
└── layout-land/camera_ui_container.xml # 横屏布局
- 测试当前效果 - 看看2.5秒是否合适
- 调整时长 - 根据你的WebP文件实际时长调整
- 优化体验 - 根据使用感受微调参数
现在你的WebP动画应该能正常工作了!每次拍照播放一次,不会循环播放。🎉