目录
- 先选方案
- 拆开讲讲
- 先铺一张彩色底
- 玻璃主体的透明度分层
- 悬停叠层与按压缩放
- 几个可以调的参数
- 什么时候用
- 小结
- 完整代码
- 工程下载
本文介绍 QML 自定义的玻璃质感组件。如图所示:
先选方案
深色底上的标签,玻璃感怎么做?为什么叠几层半透明白就能当玻璃用,而不真去模糊背景?
- 纯色填充:一个底色,零开销;适合浅色工具型界面。
- 半透明渐变叠加:主体半透明白 + 内描边 + 顶部高光分层绘制;成本低,适合深色渐变背景的导航栏。
- 真高斯模糊:用 MultiEffect 实时模糊背景;成本高,背景越复杂越耗,适合压在动态滚动画面上的毛玻璃栏。
- 拟物高光渐变:多层渐变 + 内阴影模拟凸起;成本中等,适合复古仪表盘风格。
为什么用半透明白:叠三四层半透明白的开销,就能做出玻璃分层效果,又不用实时模糊背景。代价是它只在彩色渐变底上才成立 —— 白底上叠出来发灰,底下压动态滚动画面也发灰。所以适合深色静态渐变底上的设置页、播放器导航,不适合背景一直在动、必须真模糊的场合。
选型见后面「什么时候用」对照表。
拆开讲讲
下面是逐段讲解,完整代码放在文章末尾的「完整代码」里。整个玻璃标签就三层,一层一层说。
先铺一张彩色底
最外层是一张竖向Gradient作彩色背景,从上到下深蓝、紫、青蓝渐变。玻璃感完全