鸿蒙开发:独立开发者的烦恼之icon图标选择

前言

企业的开发者,都有自己的UI设计师,对于图标而言,基本不会发愁,但是独立开发者,就不得不自己来考虑了,做为上架过多个应用的开发者,这一点是深有体会,有时候,为了找到一个好的,并且合适的图标,需要花费很长的时间,为了让后续的开发者少走弯路,目前总结了三个可以免费获取图标的渠道,希望可以帮助到大家。

系统的图标

毋庸置疑,系统的图标是首推的,如果系统能满足的,当然以系统为主要首选。

系统图标目前大概有433个图标,包含了时间,箭头,媒体,相机与照片等多种分类,可以说是十分丰富,最大的便捷是,我们不用再额外配置什么,直接就可以使用,简直不要太方便。

地址如下:

developer.huawei.com/consumer/cn...

毕竟图标太多了,大家可以点击以上的地址去详细的查看,这里就简单的截几张图吧:

使用方式

系统的图标使用也是十分的简单,给提供了两个组件用于加载,一个是SymbolGlyph组件,另一个是SymbolSpan组件,SymbolGlyph主要用于精美的图标,如渲染多色图标和使用动效图标,而SymbolSpan,则作为Text组件的子组件,主要用于在文本中穿插显示图标小符号。

SymbolGlyph组件

代码如下,sys.symbol.后面连接的是图标的标识,大家打开上面的图标地址,每个图标下面都有自己的标识,选择适合的,复制即可。

TypeScript 复制代码
 SymbolGlyph($r('sys.symbol.airplane_fill'))
        .fontSize(50)
        .renderingStrategy(SymbolRenderingStrategy.SINGLE)
        .fontColor([Color.Red])

以上的代码,就展示了一个大小为50,颜色为红色的飞机图标,想实现什么图标,只需要把图标标识替换即可。

常用的属性如下:

SymbolRenderingStrategy

名称 说明
SINGLE 0 单色模式(默认值)。可以设置一个或者多个颜色,默认为黑色。当设置多个颜色时,仅生效第一个颜色。
MULTIPLE_COLOR 1 多色模式。最多可以设置三个颜色。当只设置一个颜色时,修改symbol图标的第一层颜色,其他颜色保持默认颜色。颜色设置顺序与图标分层顺序匹配,当颜色数量大于图标分层时,多余的颜色不生效。仅支持设置颜色,设置透明度设置不生效。
MULTIPLE_OPACITY 2 分层模式。默认为黑色,可以设置一个或者多个颜色。当设置多个颜色时,仅生效第一个颜色。不透明度与图层相关,symbol图标的第一层透明度为100%、第二层透明度为50%、第三层透明度为20%。

SymbolEffectStrategy

名称 说明
NONE 0 无动效(默认值)。
SCALE 1 整体缩放动效。
HIERARCHICAL 2 层级动效。

多色模式

TypeScript 复制代码
SymbolGlyph($r('sys.symbol.ohos_folder_badge_plus'))
        .fontSize(50)
        .renderingStrategy(SymbolRenderingStrategy.MULTIPLE_COLOR)
        .fontColor([Color.Black, Color.Pink])

图标动效

TypeScript 复制代码
SymbolGlyph($r('sys.symbol.ohos_wifi'))
        .fontSize(50)
        .symbolEffect(new HierarchicalSymbolEffect(EffectFillStyle.ITERATIVE), this.isActive)

当然了,更多的案例,还是查看官方文档,目前,可以说,系统的图标已经是十分丰富,可以满足大部分的场景,不仅支持更改大小,颜色,也支持动效设置。

SymbolSpan组件

SymbolSpan可作为Text的子组件用于显示图标小符号。可以在一个Text组件内添加多个SymbolSpan,从而展示一串连续的图标,使用上也是非常的简单,简单如下所示:

TypeScript 复制代码
Text() {
  SymbolSpan($r('sys.symbol.ohos_trash'))
    .fontWeight(FontWeight.Normal)
    .fontSize(96)
}

常用的属性如下,基本上和SymbolGlyph组件类似。

属性 参数 概述
fontColor Array<ResourceColor> 图标颜色
fontSize number/string/Resource 图标大小
fontWeight number/FontWeight/string 图标粗细
renderingStrategy SymbolRenderingStrategy 组件渲染策略
effectStrategy SymbolEffectStrategy 组件动效策略
symbolEffect SymbolEffect,boolean 组件动效策略及播放状态

icon组件

icon组件主要解决了系统组件无法满足的情况,比如常见的分享图标,底部tab图标等,目前拥有408个常见图标,支持更改图标颜色大小,它虽然需要依赖使用,但是整个包的大小仅仅只有200KB,总体还是非常小的。

icon组件地址:

ohpm.openharmony.cn/#/cn/detail...

目前支持408个场景图标,支持颜色和大小更改,由于图标大多,这里还是截取几张效果图,详细的大家可以查看上面的地址。

使用方式

方式一:在Terminal窗口中,执行如下命令安装三方包,DevEco Studio会自动在工程的oh-package.json5中自动添加三方包依赖。

建议:在使用的模块路径下进行执行命令。

TypeScript 复制代码
ohpm install @abner/icon

方式二:在需要的模块中的oh-package.json5中设置三方包依赖,配置示例如下:

TypeScript 复制代码
"dependencies": { "@abner/icon": "^1.0.0"}

代码使用

TypeScript 复制代码
Icon({ iconModel: IconModel.wei_xin_circle, iconSize: 25 })

属性介绍

常见属性配置如下:

属性 类型 概述
iconModel IconModel 图标类型,传入不同类型就会展示不同图标,目前支持408种类型,具体可看上面的图标效果,每个图标下的标识就是图标类型
iconColor ResourceColor 图标颜色
iconSize number/string/Resource 图标大小,也可在组件外设置
iconBorder BorderOptions 图标边框样式

阿里图标库

如果系统的图标和icon图标,还无法满足你的需求,那么还有一个宝藏的图标平台,那就是阿里图标库。

地址如下:

www.iconfont.cn

这绝对是独立开发者的天堂,这里有无数的图标资源,格式各样,支持各种图片格式,比如,png、svg等,同样,也支持颜色更改。

各式各样的图标,任你去挑选。

同样,也支持搜索,可以根据中文或者英文进行检索,非常的方便,比如搜索返回,那么就会罗列出无数个返回的图标,任你挑选。

点击之后,可以更改图标的颜色,然后底部就可以进行下载,复制到项目中使用。

相关总结

目前的三种方式,可以说,完全能够满足日常的图标需求,这里最值得推荐的还是系统的图标库,毕竟自带的,不用任何的依赖,也不存在包体积的增加,大小、颜色、动效等等都可以原生实现,还是非常的方便的。当然了,如果原生无法满足的情况下,后面的两种方式,也是值得大家来尝试的,总之,选择一个自己适合的方式。

相关推荐
前端不太难2 小时前
HarmonyOS PC 多窗口最难的一层
华为·状态模式·harmonyos
木斯佳2 小时前
HarmonyOS 6实战(工程应用篇)—从被动响应到主动治理,如何使用HiAppEvent捕捉应用崩溃信息
华为·harmonyos
果粒蹬i2 小时前
【HarmonyOS】RN of HarmonyOS实战开发项目+TanStack缓存策略
缓存·华为·harmonyos
Swift社区2 小时前
HarmonyOS PC 的核心:任务模型
华为·harmonyos
独自破碎E2 小时前
BISHI43 讨厌鬼进货
android·java·开发语言
右手吉他2 小时前
Hostapd系统源代码学习
android
智先森zhi2 小时前
实战:将 Android 多Module应用迁移到 kmp+cmp
android·ios·kotlin
柒儿吖3 小时前
基于 lycium 在 OpenHarmony 上交叉编译 komrad36-CRC 完整实践
c++·c#·harmonyos
柒儿吖3 小时前
基于 lycium 在 OpenHarmony 上交叉编译 cppDES 完整实践
c++·harmonyos