Skip to content

玻璃投影 v0.4.0 · 动画核心与切屏交接重构

Choose a tag to compare

@spideytznn spideytznn released this 13 Sep 15:39
· 8 commits to main since this release

v0.4.0 · 动画核心与切屏交接重构

这是一次面向观感和稳定性的较大版本更新。v0.4.0 不只是调整参数,而是重新整理了铰链跟随、纸张投影、模糊场、内外屏交接和 GPU 图层生命周期。版本基于 main 最新提交构建,APK 使用项目现有的 debug 构建签名。

更新内容

1. 动画核心改为连续的角度跟随

  • 画面不再简单地在离散铰链角度之间跳变,而是使用按时间插值的连续跟随;缓动速度不依赖帧率,反向开合时可以立即向新方向跟随,不会越过目标角度。
  • 保留可调的动画起始角度,默认 1°、范围 1–30°。完全合拢时继续使用测试机型的物理接触状态保护,避免手机倾斜导致异常铰链读数重新触发动画。
  • 增加「拉伸与裁切强度」设置,默认 100%、范围 0–125%。0% 可关闭横向视差形变,纸张轮廓和模糊仍然保留;默认值保持原有 30° 时约 12% 的裁切效果。
  • 纸张轮廓、内容坐标和投影形变分开计算。内屏活动半侧产生视差与景深模糊,另一半屏幕保持原生内容坐标;垂直方向不再随透视被拉长。

2. 模糊场改为跨中轴线连续收尾

  • 内屏的模糊可以从活动半侧跨过中轴线,在接收半侧逐渐衰减,不再在中轴线处硬切。
  • 外屏中轴线附近使用连续距离场,消除中段清晰斑块;模糊从铰链附近平滑增强到远侧,保留纸张边缘和柔和黑边。
  • 接收侧只承担模糊尾部,不改变原始内容的位置;远侧最大模糊、0° 清晰端点和模糊强度设置保持可控。

3. 内外屏切换改为预淡出、黑底交接和渐亮

  • 实际切屏角度仍由设置控制;接近目标角度时最多提前约 12° 渐暗,减少系统切屏与布局重排时的可见跳变。
  • 切屏期间保持独立黑底,动画层不再通过撤层来交接,避免短暂露出旧屏幕内容或透明空档。
  • 内屏等待尺寸、方向稳定及新源帧的窗口约 120 ms;外屏保留至少 450 ms 的迟到布局保护;最长等待约 900 ms,超时会安全渐亮,不会永久卡在黑屏。
  • 内容就绪后约 180 ms 平滑渐亮并释放黑底。反向开合、悬停恢复、慢速手势和屏幕离开生效范围时会取消或清理未完成的渐变状态。
  • 对 10° / 170° 等极端切屏设置缩短提前渐暗区间,避免在完全闭合或接近平展时过早整屏变黑。

4. 助手和图层生命周期同步加强

  • 更新内置实时渲染助手,使实时 GPU 路径、截图预览和编号素材预览使用同一套几何与渐变模型。
  • 应用或助手退出时主动提交透明帧、回收投影层和切屏控制,降低锁屏或桌面残留旧图层的概率。
  • 保留 Shizuku 手机端启动方式、桌面/亮屏锁屏默认作用范围、全局启用、悬停恢复和可选手指滑动恢复。

验证

  • 通过几何、角度跟随、模糊距离场、跨中轴线收尾、切屏阈值、双向渐变、反向取消、超时和图层清理模型测试。
  • 通过助手源码重建一致性检查、Android debug 构建和 lint。
  • 目标适配范围仍是 Xiaomi 2608BPX34C / lhasa、Android 17 / HyperOS 4.0.11.0。其他设备的折叠状态编号、显示尺寸和系统窗口行为可能不同,不承诺直接兼容。

升级与安装

  1. 旧版先点 暂停动画,确认本应用无障碍服务已关闭。
  2. 下载 GlassProjection-0.4.0.apk 并覆盖安装,以保留现有设置。
  3. 安装后重启手机一次,清理旧版本可能遗留的锁屏 / 桌面投影层。
  4. 重启后重新启动 Shizuku,检查并开启「玻璃投影」无障碍服务,确认应用显示「动画已就绪」。
  5. 从完全合拢开始缓慢展开和合拢;若升级后出现旧画面残影,先再次暂停动画并重启,不要同时开启其他折叠动画应用。

APK 为 debug 构建签名,发布附件提供 SHA-256 校验值。自建 APK 通常使用不同的 debug 密钥,可能无法直接覆盖安装 Release。更多后台配置与故障排查见使用教程和构建说明。

附件校验

190b3a528fd4edc477d61de44237aab8fd87c4e667a2c5be45d19e8b10a8d003  GlassProjection-0.4.0.apk