HarmonyOS开发实战:小分享-layered_image.json启动图标分层设计
前言HarmonyOS 应用启动图标采用「分层设计」由前景foreground 背景background 配置layered_image.json三部分组成。这种设计让一个图标可以适配多种形状的桌面蒙版圆形、方形、圆角矩形。本篇以小分享 App 的 layered_image 配置为例讲解启动图标的分层设计。详细规范可参考 HarmonyOS 启动图标官方文档。一、layered_image 配置文件1.1 layered_image.json 全文小分享 App 的resources/base/media/layered_image.json如下{ layered-image: { background: $media:background, foreground: $media:foreground } }1.2 字段说明字段说明如下字段作用资源示例background图标背景图background.pngforeground图标前景图foreground.png1.3 配置位置配置位置如下配置文件entry/src/main/resources/base/media/layered_image.json背景图片entry/src/main/resources/base/media/background.png前景图片entry/src/main/resources/base/media/foreground.png提示分层图标的资源文件名必须与 JSON 配置一致否则会找不到资源。二、在 module.json5 中引用2.1 引用方式小分享 App 在module.json5中通过$media:layered_image引用{ abilities: [ { name: EntryAbility, icon: $media:layered_image, label: $string:EntryAbility_label, startWindowIcon: $media:startIcon, startWindowBackground: $color:start_window_background } ] }2.2 icon vs startWindowIconicon和startWindowIcon的区别如下字段用途显示时机icon桌面图标桌面长按显示startWindowIcon启动图标应用启动瞬间2.3 startWindowBackgroundstartWindowBackground是启动时的背景色startWindowBackground: $color:start_window_background引用resources/base/element/color.json中的start_window_background键{ color: [ { name: start_window_background, value: #FFFFFF } ] }三、分层图标的尺寸规范3.1 标准尺寸HarmonyOS 分层图标的尺寸规范如下资源推荐尺寸px用途background.png324 × 324图标背景层foreground.png216 × 216图标前景层startIcon.png288 × 288启动图单层3.2 安全区域前景图必须在 216 × 216 的安全区域内超出部分会被系统蒙版裁剪。3.3 设计要点设计要点如下背景层纯色或简单图案避免复杂细节前景层放置应用 Logo 或核心元素安全区前景图保留 25% 边距避免被裁剪提示使用 SVG 或矢量格式可以保证在不同分辨率下的清晰度。四、layered_image 与 Adaptive Icon 的关系4.1 设计哲学HarmonyOS 的分层图标设计借鉴了 Android Adaptive Icon 的理念前景层可被系统蒙版裁剪的元素背景层稳定的背景色或图案4.2 跨平台一致性跨平台一致性如下iOS使用单层 PNG 图标不支持蒙版AndroidAdaptive Icon支持前景背景两层HarmonyOSlayered-image支持前景背景两层提示跨平台设计建议先做 HarmonyOS / Android 的分层图标再为 iOS 单独出图。五、分层图标的资源适配5.1 多分辨率适配HarmonyOS 通过资源目录的密度限定词来适配不同分辨率resources/ base/ # 默认mdpi media/ background.png foreground.png phone/ # 手机专用 media/ background.png foreground.png5.2 深浅色适配深浅色模式下的图标资源适配resources/ base/ media/ background.png # 浅色背景 foreground.png dark/ media/ background.png # 深色背景 foreground.png5.3 实战建议实战建议如下默认资源放base/高分辨率图放phone/深色图标放dark/六、layered_image.json 的扩展配置6.1 完整配置示例除了基础的前景背景layered_image.json 还支持更多扩展{ layered-image: { background: $media:background, foreground: $media:foreground, background-color: #F5A623 } }6.2 字段说明扩展字段说明如下字段作用background-color纯色背景优先级低于 background6.3 使用场景使用场景如下简单纯色背景图标无需 PNG快速原型设计七、本篇核心知识点7.1 分层图标核心要素分层图标核心要素总结如下layered_image.json配置文件background.png背景层foreground.png前景层$media:layered_image在 module.json5 中引用7.2 实战开发要点实战开发中需要重点关注以下几个要点前景图必须在 216 × 216 安全区域内背景图推荐 324 × 324深浅色图标分别放在base/和dark/配置文件名必须与 JSON 引用一致总结本文详细讲解了 HarmonyOS layered_image.json 启动图标的分层设计结合小分享 App 的实际配置讲解了 JSON 配置、资源引用、尺寸规范、深浅色适配等核心知识点。下一篇我们将看 ArkTS 接口定义最佳实践——interfaces.ets 公共类型。附录完整实现细节1. 核心 API 参考API作用说明本文涉及的核心 API功能实现参见华为官方文档2. 完整代码示例// 核心功能代码 // 详见正文中的完整实现3. 常见问题排查问题原因解决方案编译错误import 路径错误检查路径和 API 版本运行时异常参数不合法使用 try/catch 捕获性能问题主线程耗时操作使用异步 API4. 最佳实践错误处理完善使用 try/catch 包裹资源及时释放避免内存泄漏异步操作使用 async/await权限配置完整按需申请5. 完整代码文件索引文件路径说明本文涉及的代码文件见正文6. 实现要点总结核心实现要点API 的正确使用方法和参数说明完整的代码实现流程常见问题的排查方案性能优化和安全建议7. 总结本文详细讲解了小分享 App 中对应功能的完整实现。通过本文的学习读者可以掌握 HarmonyOS 开发的核心 API 使用方法和最佳实践。开发注意事项1. API 版本兼容性确保使用的 API 在目标 SDK 版本中可用。不同版本的 HarmonyOS 可能对 API 的支持有所不同建议查阅官方文档确认。2. 权限配置根据功能需求配置相应的系统权限。权限在 module.json5 中声明运行时通过 abilityAccessCtrl 申请。3. 错误处理所有异步操作使用 try/catch 包裹确保异常不会导致应用崩溃。错误信息通过 hilog 输出便于调试。4. 资源释放使用完毕后及时释放系统资源避免内存泄漏。例如文件操作后关闭文件句柄数据库操作后关闭 ResultSet。5. 性能优化避免在主线程执行耗时操作使用异步 API 处理耗时任务。大量数据渲染时使用 LazyForEach 懒加载。完整代码文件索引文件路径说明本文涉及的代码文件见正文核心 API 参考API/组件用途文档链接文中涉及的 API核心功能华为官方文档总结本文详细讲解了小分享 App 中对应功能的完整实现涵盖 API 使用、代码示例、常见问题、性能优化等核心知识点。通过本文的学习读者可以掌握 HarmonyOS 开发的完整流程。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力

相关新闻

VS Code 1.130 发布:“代理”窗口优化,新增代理权限与可点击 Git 链接

VS Code 1.130 发布:“代理”窗口优化,新增代理权限与可点击 Git 链接

VS Code 1.130:“代理”窗口焕新升级7 月 22 日,微软发布了 Visual Studio Code 1.130,此次更新为“代理”窗口带来了多项改进。文件级别的差异统计功能,让用户在查看多文件差异时能轻松评估每个文件的更改规模。同时,…

2026/7/24 17:24:00阅读更多 →
VMware macOS解锁神器:三步让Windows电脑运行苹果系统

VMware macOS解锁神器:三步让Windows电脑运行苹果系统

VMware macOS解锁神器:三步让Windows电脑运行苹果系统 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker 你是否曾经梦想在普通Windows电脑上体验macOS的流畅操作?VMware macOS解锁…

2026/7/24 17:24:00阅读更多 →
AO3镜像站终极指南:3步轻松访问全球最大同人创作平台

AO3镜像站终极指南:3步轻松访问全球最大同人创作平台

AO3镜像站终极指南:3步轻松访问全球最大同人创作平台 【免费下载链接】AO3-Mirror-Site 项目地址: https://gitcode.com/gh_mirrors/ao/AO3-Mirror-Site Archive of Our Own(AO3)作为全球最大的同人创作平台,汇集了数百万…

2026/7/24 17:24:00阅读更多 →
配置系统策略禁用u盘等外设

配置系统策略禁用u盘等外设

在日常办公或公共电脑维护中,我们经常面临这样的困扰:公司内部资料需要严防外泄,可总有员工随手插U盘拷贝文件;学校机房的电脑病毒泛滥,源头往往就是学生带来的个人U盘;甚至有些场景下,我们希望…

2026/7/24 18:52:18阅读更多 →
PyTorch 神经网络基础(模型构建,参数构造...)

PyTorch 神经网络基础(模型构建,参数构造...)

PyTorch 神经网络基础模型构造(层和块):MLP 的本质(显示定义):自定义块需要实现的功能: (1)将输入数据作为其前向传播函数的参数。(2)通过前向传播…

2026/7/24 18:52:18阅读更多 →
Low-Rank Few-Shot Adaptation of Vision-Language Models论文阅读

Low-Rank Few-Shot Adaptation of Vision-Language Models论文阅读

视觉语言模型的低秩少样本自适应code: https://github.com/MaxZanella/CLIP-LoRA摘要背景:视觉语言模型的少样本自适应提升了模型的泛化能力,少量标注样本即可在下游任务适配。现有问题:现有研究集中在 提示学习,Adapter方向, 忽…

2026/7/24 18:52:18阅读更多 →
魔兽争霸III终极优化指南:用WarcraftHelper插件让经典游戏在现代电脑重生

魔兽争霸III终极优化指南:用WarcraftHelper插件让经典游戏在现代电脑重生

魔兽争霸III终极优化指南:用WarcraftHelper插件让经典游戏在现代电脑重生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典魔兽争…

2026/7/24 18:52:18阅读更多 →
终极AMD Ryzen调试神器:免费开源SMUDebugTool完全使用指南

终极AMD Ryzen调试神器:免费开源SMUDebugTool完全使用指南

终极AMD Ryzen调试神器:免费开源SMUDebugTool完全使用指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…

2026/7/24 18:52:18阅读更多 →
AnyUp:动态核预测的通用特征上采样技术解析

AnyUp:动态核预测的通用特征上采样技术解析

1. AnyUp技术背景与核心价值 在计算机视觉和深度学习领域,特征上采样(Feature Upsampling)一直是个关键但棘手的问题。传统方法如双线性插值(Bilinear Interpolation)或转置卷积(Transposed Convolution&am…

2026/7/24 18:50:18阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 0:58:53阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 0:58:53阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 0:58:53阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:06阅读更多 →
【LeetCode 54】螺旋矩阵

【LeetCode 54】螺旋矩阵

问题描述: 解法: 1、模拟(参考自【LeetCode 54】螺旋矩阵-CSDN博客) int *spiralOrder(int **matrix, int matrixSize, int *matrixColSize, int *returnSize) {static const int dirs[4][2] {{0, 1}, {1, 0}, {0, -1}, {-1, …

2026/7/24 0:00:06阅读更多 →
2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

知春路不相信模型领先今年WAIC大会,昔日AI六小龙来了五家,分别是Kimi、阶跃星辰、Minimax、百川智能、零一万物。连放弃基模的百川和零一万物都来了,唯一缺席的竟是近几个月来风光无限的智谱。(DeepSeek一直不参加)WAI…

2026/7/24 0:00:06阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/23 22:58:43阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/23 18:58:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/23 18:58:18阅读更多 →