Material You + 深色模式 + OLED 纯黑三档主题
Jetpack Compose + Material 3
ZenConverter 的 UI 是现代 Android 应用的主流方案:
| 技术 | 说明 |
|---|---|
| UI 框架 | Jetpack Compose(声明式 UI) |
| 主题系统 | Material Design 3(动态色彩 + 组件库) |
| 状态管理 | ViewModel + StateFlow(协程响应式) |
| 架构 | MVVM(Activity → ViewModel → 引擎管线) |
没有用 XML 布局,没有用传统 View 系统。
主题的三个独立维度
ZenConverter 的主题控制是三个独立开关(不是一个总开关):
| 维度 | 选项 | 默认 |
|---|---|---|
| 浅色 vs 深色 | 跟随系统 / 手动浅色 / 手动深色 | 跟随系统 |
| Material You 动态取色 | 开启 / 关闭 | 跟随系统(Android 12+ 自动开) |
| OLED 纯黑 | 开启 / 关闭 | 关闭 |
三个维度的组合自由度很高:
- 跟随系统深色 + Material You 开 + OLED 纯黑关 = 深色 Material You;
- 手动浅色 + Material You 关(固定蓝白) = 稳定的品牌色;
- 跟随系统 + Material You 开 + OLED 纯黑开 = 深色模式下用真黑色代替深灰(省电)。
Material You 动态取色
v0.2.3 版本引入 Material You 动态取色(feat: add Material You dynamic color support)。核心行为:
- 从 Android 系统的动态色彩提取 palette(基于你的桌面壁纸颜色);
- 生成 4 组语义色(Primary / Secondary / Tertiary / Neutral)+ 每个模式下的具体色调;
- 应用的所有组件(按钮、卡片、输入框、进度条)自动用 Material 3 Token 生成,不需要硬编码颜色值。
需要 Android 12(API 31)以上——低版本没有 Material You,动态取色选项会被自动隐藏,应用用一套固定的 Material 3 palette。
OLED 纯黑独立开关
v0.2.3 版本做了一个重要重构(feat: decouple OLED dark mode from theme mode with independent toggle):把 OLED 纯黑从主题模式里解耦出来,变成独立开关。
为什么 OLED 纯黑要独立
传统深色模式用深灰色(比如 #1C1B1F)作为背景色,这样让 UI 有层次、有深度。但 OLED 屏幕显示深灰色时每个像素都在发光,耗电比显示纯黑色(#000000)多约 50%。
ZenConverter 的方案是:
- 默认深色模式用 Material 3 推荐的深灰色背景(UI 层次更好看);
- 如果你有 OLED 屏幕、想省电,开独立的 OLED 纯黑开关 → 深色模式下所有背景变成纯黑色(#000000),UI 层次会减少但省不少电。
这两个功能互不干扰:你可以在跟随系统深色模式的同时开/关 OLED 纯黑,也可以手动选深色模式同时开/关 OLED 纯黑。
OLED 纯黑的继承历史
v0.2.3 之前 OLED 纯黑是深色模式的一个隐含选项,v0.2.3 之后才变成独立开关。升级的用户会有一次旧值迁移——如果之前是手动深色 + OLED 纯黑,升级后会自动变成手动深色 + OLED 纯黑独立开关开着,行为保持一致。
使用场景
| 场景 | 推荐 |
|---|---|
| Pixel / 三星 / 小米 OLED 屏幕、想省电 | 跟随系统深色 + OLED 纯黑开 |
| LCD 屏幕、想 UI 层次好 | 跟随系统 + 不开 OLED 纯黑 |
| 想稳定的品牌蓝白、不受壁纸影响 | 手动浅色 + Material You 关 |
| Android 11 及以下 | Material You 选项自动隐藏,选浅色/深色就行 |
相关页面
