今天主要说说如何通过字体文件加载应用中的一些图标
首先推荐一个网站iconfont-阿里巴巴矢量图标库,这里有海量的图标,可以下载你想要的各种矢量图标,你也可以在注册并登陆账号后,把自己想要的图标打包、下载为文件
- 关于
<Text>
组件
通过fontFamily
可以指定<Text>
显示的字体文件,下文将详细说明 - 代码
<View style={{backgroundColor:'white',width:width-44,height: 36,marginTop: 2,flexDirection:'row',alignItems: 'center',justifyContent: 'space-around',}} >
<Text style={{ color: 'red', fontFamily:'iconfont',fontSize: 30 }}></Text>
<Text style={{ color: 'red', fontFamily:'iconfont',fontSize: 30 }}></Text>
<Text style={{ color: 'red', fontFamily:'iconfont',fontSize: 30 }}></Text>
<Text style={{ color: 'red', fontFamily:'iconfont',fontSize: 30 }}></Text>
<Text style={{ color: 'red', fontFamily:'iconfont',fontSize: 30 }}></Text>
</View>
效果图:
下面说重点
从阿里巴巴矢量图标库中选择适合的图标,并打包下载
下载后得到如下文件,
iconfont.tff
即为所需文件
在根工程目录下创建
assets/fonts/
文件夹,导入iconfont.ttf
文件
1. iOS
把fonts
文件夹拖到iOS工程目录下
另外还需要在info.plist文件key为 Fonts provided by application
的Array中添加item fonts/iconfont.ttf
,到此为止,已经可以在RN项目中使用对应fontFamily
:iconfont
中的字体图标了
2. Android
之所以在工程目录下创建assets/fonts
这样的路径,就是为了iOS和Android统一,因为Android必须要把字体文件放在[project root]/android/app/src/main/assets/fonts/
文件夹下才能生效,好吧,我们把工程目录下的assets
拷贝一份到Android/app/src/main
目录下
3. 使用
<View style={{backgroundColor:'white',width:width-44,height: 36,marginTop: 2,flexDirection:'row',alignItems: 'center',justifyContent: 'space-around',}} >
<Text style={{ color: 'red', fontFamily:'iconfont',fontSize: 30 }}></Text>
<Text style={{ color: 'red', fontFamily:'iconfont',fontSize: 30 }}></Text>
<Text style={{ color: 'red', fontFamily:'iconfont',fontSize: 30 }}></Text>
<Text style={{ color: 'red', fontFamily:'iconfont',fontSize: 30 }}></Text>
<Text style={{ color: 'red', fontFamily:'iconfont',fontSize: 30 }}></Text>
</View>
效果就是文章开篇的效果图了
4. 弊端
图标对应的unicode码(如:``````
)跟显示的图标没有直接的对应关系