Android16修改全局桌面视图边框四直角显示为弧边圆角

在 dimens.xml 设置 rounded_corner_radius为16dp(默认0dp)当SystemUI 检测到这个半径 > 0时,会在屏幕四个角创建 ImageView

frameworks\base\core\res\res\values\dimens.xml

加载以下两个 XML 作为 ImageView 的 src,通过旋转/镜像让同一个矢量图覆盖到四个角,屏幕四个角显示黑色圆角,视觉上把直角"遮住",这两个文件是 SystemUI 圆角覆盖层的"遮罩"矢量图。它们的作用是:控制屏幕四个角显示什么样的圆角覆盖层

frameworks\base\packages\SystemUI\res\drawable\rounded_corner_top.xml

frameworks\base\packages\SystemUI\res\drawable\rounded_corner_bottom.xml

经验证后发现系统默认的8dp圆角最合适,修改pathData为M16,0H0v16C0,8.8,7.2,0,16,0z后圆角的弧太大了还原回8dp M8,0H0v8C0,8.8,7.2,0,8,0z

pathData 计算逻辑

当前 pathData="M16,0H0v16C0,8.8,7.2,0,16,0z" 表示:

|-------------------|----------------|---------------------------|
| 命令 | 坐标 | 含义 |
| M16,0 | (16, 0) | 移动到右上角 |
| H0 | (0, 0) | 水平线到左上角 |
| v16 | (0, 16) | 垂直线到左下角 |
| C0,8.8,7.2,0,16,0 | 贝塞尔曲线到 (16, 0) | 控制点1 (0,8.8),控制点2 (7.2,0) |
| z | 闭合路径 | 形成一个填充区域 |

相关推荐
雨白1 小时前
深入理解 Java/Kotlin 反射、注解与泛型:从原理到实战
android·架构
2601_963870203 小时前
【计算机毕业设计】基于Spring Boot的专科医院医疗管理系统
java·spring boot·课程设计
Bingo_BIG3 小时前
Java Spring 批量修改,实体、接口、方法的定义
java·spring
画中有画3 小时前
软件架构中质量属性(性能、安全、可扩展性)的权衡设计
java·运维·安全
Shaoxi Zhang4 小时前
JAVA学习笔记035——对象和JSON格式
java·笔记·学习
赵丙双4 小时前
CountDownLatch 源码分析
java·aqs·countdownlatch
余额瞒着我当琳4 小时前
C++--深拷贝三件套 + swap + 写时拷贝 + vector 扩容 + reserve
java·开发语言·c++
thefool1122664 小时前
翻转二叉树
java
喜欢打篮球的普通人5 小时前
LLVM Backend Lowering 从入门到实战:把 IR 变成机器码的完整链路
android·java·数据库
FL16238631296 小时前
室内易燃物识别易燃评估室内易燃程度识别分割数据集labelme格式1015张85类别
java·服务器·前端