AutoJs6 主题与夜间模式 — 外观自定义
内置主题色
AutoJs6 v6.2 开始引入主题色适配,覆盖以下界面元素:
- 分组标签页
- 定位按钮
- 搜索框高亮
- 历史记录条目
- 进度条与选择器高亮
- 亮度与对比度自动适配
主题色跟随当前系统设置自动适配,无需手动切换。但你可以在设置中选择偏好的颜色方案:
设置 → 外观 → 主题色 → 自动 / 深色 / 浅色 / 自定义
夜间模式全面适配
AutoJs6 对夜间模式进行了全量适配,以下界面在夜间模式下会自动切换为深色背景:
| 界面 | 夜间模式支持 | 说明 |
|---|---|---|
| 设置页面 | ✅ | 完整支持 |
| 内置文档 | ✅ | docs.autojs6.com 内嵌查看 |
| 布局分析器 | ✅ | 布局分析页面支持 |
| 浮动按钮 | ✅ | 悬浮窗支持 |
| 代码编辑器 | ✅ | 深色代码主题 |
| 文件管理器 | ✅ | 文件列表深色背景 |
| 控制台输出 | ✅ | log 输出支持深色显示 |
自定义脚本中的适配
当你编写 E4X UI 界面或自定义悬浮窗时,可以让界面跟随系统夜间模式:
// 检测当前是否为夜间模式
let isDark = ui.mode === "dark" ||
(globalThis.app && app.getUiMode() === 2);
if (isDark) {
// 夜间模式下使用深色背景
ui.statusBarColor = "#1a1a1a";
}
也可以使用 AutoJs6 内置的主题适配 API:
// 让自定义悬浮窗跟随系统主题
let window = floaty.rawWindow(
<frame bg="{{colorBg}}">
<text text="浮动按钮" textColor="{{colorText}}"/>
</frame>
);
// 自动获取主题适配的颜色值
let colorBg = colors.toHex(attr("windowBackground"));
let colorText = colors.toHex(attr("textColorPrimary"));
对比度优化
v6.2 开始 AutoJs6 会自动检测系统的高对比度设置,并相应调整界面文字和背景的颜色对比度,确保可读性。
设置 → 无障碍 → 高对比度文本(系统级开关)
外观设置汇总
| 设置项 | 路径 | 说明 |
|---|---|---|
| 主题色 | 设置 → 外观 | 自动/深色/浅色/自定义 |
| 夜间模式 | 跟随系统 | 自动切换,或强制开启/关闭 |
| 编辑器主题 | 设置 → 编辑器 | 支持多种代码高亮主题 |
| 字体大小 | 设置 → 无障碍 | 界面字体缩放 |
| 浮动按钮大小 | 设置 → 浮动按钮 | 小/中/大 |
打包应用中的主题
如果你将脚本打包为独立 APK,可以在项目配置中指定应用的主题:
// 项目配置 script.json 中
{
"theme": {
"lightStatusBar": false,
"statusBarColor": "#FF5722",
"navigationBarColor": "#1a1a1a"
}
}
打包应用同样支持夜间模式自动切换,无需额外代码。