POLARISUI / DOCUMENTATION / 2.4.5

禁止商用。所有使用 PolarisUI 的应用都必须公开完整源码。查看许可条款

Morden / LiquidGlass / Normal 材质模板

本页内容

在示例程序中使用

打开任意分类或任意场景,点击右上角 LiquidGlass 设置。背景开关下面新增的 材质模板 区域有三个按钮:Morden、LiquidGlass、Normal。名称与大小写按请求保留;Morden 没有改成 Modern。

模板一次设置全部八个数值,不继承上一个模板的部分值。滑杆、横向加减数值编辑器、背景模糊开关都会同步;点击后仍可手动调节,再次点相同模板可恢复这组固定参数。

参数MordenLiquidGlassNormal
模糊强度 / Gaussian sigma(物理像素)151.50
折射强度15300
RGB 色散120
表面不透明度111
边缘高光1.51.51.5
模糊混合比例1.001.000
材质 tint0.50.51
选中 tint 增量0.50.51

Normal 的高光仍为 1.5,这是明确给定的值;没有因名称为 Normal 而额外关闭高光或修改渲染算法。Normal 将 sigma 和 blur 同时设为 0,所以背景模糊开关会关闭。

手动重新打开背景模糊时,保留原来的开关语义:恢复最后一个非零 sigma,不修改 blur 混合比例。因此从 Normal 手动开启模糊开关后,还要调高混合比例才会显示混合后的模糊;再次选择 Morden 或 LiquidGlass 会同时恢复两项。模板不会把不相关的开关操作变成隐式应用另一套参数。

保留哪些状态

只修改表中八项材质值。不会更换 Theme 对象,不改变深浅色、全局颜色、字体、字号、圆角、抗锯齿、背景网格、背景动画、控件动效或已有场景状态。

示例启动默认材质不变;首次打开设置也不自动应用模板。原有“通透”“柔和”“低反光”“恢复默认”仍保留在参数下方。模板行和旧预设行在窄窗口自动换行,使用同一 gap 和共同的尺寸计算,不挤压按钮标签或新增底板。

当前程序会在同一窗口会话内保留材质调整;关闭后不写入配置文件。本更新没有新增磁盘持久化或账号同步。

Java API

两个 JDK 目标使用相同 API:

import polaris.sdk.ui.MaterialPreset;

// 在当前 Ui 的线程中调用。
MaterialPreset.MORDEN.applyTo(ui.theme());
MaterialPreset.LIQUID_GLASS.applyTo(ui.theme());
MaterialPreset.NORMAL.applyTo(ui.theme());

applyTo(Theme) 返回传入的同一个 Theme,只写表里的八项。它不会创建窗口或触发额外背景渲染流程。

需要连正在编辑的数值框也立即刷新时,可通过当前设置面板:

settingsPanel.applyPreset(MaterialPreset.MORDEN);

GlassSettingsPanel.applyPreset 在应用参数后同步所有编辑器,并覆盖该面板里尚未提交的数字文本,避免旧文本失去焦点时把模板值写回旧值。该方法也只应在所属 UI 线程调用。

公开模板标签通过 MaterialPreset.MORDEN.displayName() 等读取。三项枚举的常量为 MORDEN、LIQUID_GLASS、NORMAL,不会用本地化翻译替换用户要求的界面名称。

完整示例

源码:examples/MaterialPresets.java。它使用现有控件和 GlassSettingsDialog,不是第二套模拟设置界面。

sh run-example.sh 8 MaterialPresets
sh run-example.sh 21 MaterialPresets

Windows 对应 run-example.cmd 8 MaterialPresets 等。

运行环境限制与其余 SDK 一致。Java 8/21 发布目标都由本次构建实际生成;Windows 原生后端未改动且仍未完成实机验证。

依据 SDK 2.4.5 随包文档 docs/MATERIAL-PRESETS.md 整理。历史版本说明保留原记录;品牌为 PolarisUI,当前 API 包名为 polaris.sdk.ui。