BetterVia 莫奈取色——Material You 动态配色适配 Via
什么是莫奈取色
Android 12 引入了 Material You 设计语言,其中最显著的特性之一是动态取色(Dynamic Color)——系统从用户当前使用的锁屏壁纸里提取一个主色调,然后基于这个主色自动生成一整套调色板,应用到系统设置、通知、以及支持 Material You 的 App 里。
Via 浏览器本身不支持 Material You 动态取色。BetterVia 补上了这个缺口。
实现原理
BetterVia 的莫奈取色功能分两步:
- 取色:读取 Android 系统的动态调色板 API(
ColorResources或DynamicColors),获取系统当前为 Material You 生成的一整套颜色值(primary、on-primary、secondary、background 等) - 应用:通过 hook Via 的 UI 渲染逻辑,把提取到的颜色注入到 Via 的主题引擎中
系统版本要求
| Android 版本 | 是否支持莫奈取色 |
|---|---|
| Android 12 及以上 | 完整支持(系统原生 API) |
| Android 11 | 部分支持(通过库模拟) |
| Android 10 及以下 | 不支持 |
Android 12+ 上效果最好——可以精确跟随系统壁纸变化。Android 11 上 BetterVia 会尝试通过第三方库(如 LibrariesHelper)模拟动态取色,但精度略低。
开启方式
BetterVia 设置面板 → 界面定制 → 莫奈取色 → 打开开关。开启后:
- Via 的主题颜色会自动跟随系统
- 更换锁屏壁纸 → 系统重新取色 → Via 主题同步更新(可能需要重新打开 Via 才会看到变化)
- 同时自动覆盖之前手动选的主题(这是一个互斥关系:用莫奈取色就不能用手动主题,反之亦然)
莫奈取色 vs 手动主题
| 对比项 | 莫奈取色 | 手动主题 |
|---|---|---|
| 颜色来源 | 系统动态生成 | 手动选色 |
| 跟随壁纸变化 | 是 | 否 |
| 色彩协调度 | 系统算法保证协调 | 取决于自己配色水平 |
| 适用场景 | 喜欢跟着锁屏氛围走的用户 | 想要固定个性配色的用户 |
为什么某些设备上莫奈取色效果不好
部分国产 Android ROM(早期 MIUI、ColorOS、OriginOS)对 Material You 做了阉割,系统不向三方 App 暴露完整的动态调色板 API。在这些 ROM 上:
- 可能只能拿到一个主色,拿不到完整的 on-primary、secondary 等派生色
- 拿到的颜色和系统实际使用的颜色不一致
- 或者完全拿不到任何颜色值
这种情况下 BetterVia 会自动回退到「从锁屏壁纸直接提取主色 + 自动生成协调色板」的降级方案。效果可能不如原生 Material You 协调,但比固定死的主题好。