HarmonyOS 鸿蒙Next中sys.media下图标的使用
HarmonyOS 鸿蒙Next中sys.media下图标的使用
sys.media下图标的使用Image($r('sys.media.ohos_ic_public_scan_filled'))
报红,而 Image($r('sys.media.ohos_ic_public_remove_filled'))
不报红,我用的DevEco Studio是最新的,用的是api19,这个网址下的很多图标都不能用
https://developer.huawei.com/consumer/cn/design/harmonyos-icon/
更多关于HarmonyOS 鸿蒙Next中sys.media下图标的使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这句报错,是因为当前api版本下没有这个资源
能在sysResource.js中找到的,说明资源存在。
建议使用
SymbolGlyph
用法如下,先看效果:
SymbolGlyph($r("sys.symbol.AI")).fontSize(50)
打开图标符号素材库链接:HarmonyOS 主题图标库 | icon素材免费下载 | 华为开发者联盟
把复制的名字放到下面:
目前该资源库收录了433个图标,显然还很少,如果满足不了,你再打开你发的链接下载所有资源,放入你的项目目录中,通过Image组件展示。
如果对你有帮助,可以点击“采纳意见”
更多关于HarmonyOS 鸿蒙Next中sys.media下图标的使用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
背景知识:
HarmonyOS Symbol 代表了 HarmonyOS 系统图标设计的一次重要演进。它通过简化的图形和直观的语义表达,不仅易于识别,同时融入了更多年轻化的设计理念,使得整体的视觉风格更加年轻和时尚。同时 HarmonyOS Symbol 还具备了字体属性,使其能够与系统字体无缝对接,确保了文本与图标的排版一致性。此外,它能够根据文本的粗细变化进行智能适配,确保了在不同文本粗细下,图标能够灵活适应,保持视觉的连贯性和一致性。
问题解决:
如下代码:
@Entry
@Component
struct ThreadPage {
@State message: string = 'Hello World';
build() {
Column() {
SymbolGlyph($r("sys.symbol.ohos_arrow_up"))
.fontSize(26)
.renderingStrategy(SymbolRenderingStrategy.SINGLE)
.fontColor([Color.Black,Color.Black,Color.Yellow])
SymbolGlyph($r("sys.symbol.worldclock"))
.fontSize(26)
.renderingStrategy(SymbolRenderingStrategy.SINGLE)
.fontColor([Color.Black,Color.Black,Color.Yellow])
SymbolGlyph($r("sys.symbol.worldclock_fill"))
.fontSize(26)
.renderingStrategy(SymbolRenderingStrategy.SINGLE)
.fontColor([Color.Black,Color.Black,Color.Yellow])
}
.height('100%')
.width('100%')
}
}
以上的图片应该是在下面的网址: https://developer.huawei.com/consumer/cn/design/harmonyos-symbol/
worldclock 、worldclock_fill
测试:
sys.media 路径下图标需遵循 HarmonyOS系统资源命名规范,部分图标可能仅在特定API版本中存在。楼主看下HarmonyOS系统图标库,看看图标名称与API19版本适配性。然后检查是否存在拼写错误 或 资源名称变更。
系统图标推荐通过 SymbolSpan 组件加载,支持动态调整颜色和大小。
Text() {
SymbolSpan($r('sys.symbol.ohos_trash'))
.fontSize(48)
.fontColor(Color.Red)
}
可能现在推荐用sys.symbol,media的网址里面很多都是空的
https://developer.huawei.com/consumer/cn/design/harmonyos-symbol/
在HarmonyOS Next中,sys.media
下的图标属于系统预置资源,可通过$r('sys.media.ic_xxx')
直接引用。图标资源路径为/resources/base/media/
,支持SVG/PNG格式。使用时需声明资源依赖:在module.json5
中添加"resourceDependencies": ["sys.media"]
。系统图标遵循鸿蒙设计规范,尺寸适配多种设备,开发者无需处理多分辨率适配。
在HarmonyOS Next中,sys.media
下的图标资源使用确实需要注意版本兼容性。根据您描述的情况,这可能是由于以下原因:
-
图标资源在API 19版本中可能尚未完全适配。部分图标是在较新API版本中才加入的。
-
建议检查以下解决方案:
- 确认项目配置中是否正确引用了media资源包
- 尝试清理项目并重新同步Gradle
- 检查图标名称是否完全匹配(包括大小写)
-
替代方案: 可以尝试将图标文件直接放入项目的
resources/base/media
目录下使用,而非引用sys.media
系统资源。 -
如果问题仍然存在,建议在DevEco Studio中查看具体的错误信息,通常会有更详细的资源缺失提示。