React Native与Iconfont
之前总是想写一些关于学习体会和感受的文章,今天也来一篇关于React Native的教程文章。前段时间我尝试着用React Native构建一个论坛的APP,在这个过程中遇见一个问题: 最开始我是用图片的形式去构建APP中的图标,但用图片构建图标的过程中会遇到一个问题,就是图片的加载速度非常之慢,APP页面加载过程中图标会出现留白的情况,所以我就想要用Iconfont去构建图标。 IconfontIconfont,如字面的意思,就是字体图标。如果你身处在一个视觉或者交互对页面UI一天一变的蛋疼团队,你会深刻的理解使用图片作为图标的不便之处:
有了Iconfont一切就不一样了:
React Native中使用Iconfont 说了Iconfont这么多的好处,现在我们就尝试着在React Native中使用Iconfont。作为Github的搬运工,想要在React Native中使用Iconfont我们需要使用库:react-native-vector-icons,
当然我们希望能够支持我们自定义Iconfont。下面逐步介绍如果在React Native中使用Iconfont。 首先,下载相应的Iconfont文件(*.ttf),我们在阿里巴巴矢量图标库中新建一个项目,将所需要的图标都保存到该项目中,并下载到本地。
我们通过
iOS配置
我们在目录下新建
我们选择
然后我们在
Android配置 Android的配置相对比较简单,如果只想使用在 apply from: "../../node_modules/react-native-vector-icons/fonts.gradle" 对于自定义的图标库,也只需要在 project.ext.vectoricons = [ iconFontNames: ['Iconfont.ttf' ] //添加你需要赋值的字符文件 ] apply from: "../../node_modules/react-native-vector-icons/fonts.gradle" 使用方法Icon Component如果是内置图标库中图标,你可以通过如下方式使用: import Icon from 'react-native-vector-icons/FontAwesome'; const myIcon = (<Icon name="rocket" size={30} color="#900" />) 对于自定义图标库,我们可以参考一下 /** * FontAwesome icon set component. * Usage: <FontAwesome name="icon-name" size={20} color="#4F8EF7" /> */ import createIconSet from './lib/create-icon-set'; import glyphMap from './glyphmaps/FontAwesome.json'; const iconSet = createIconSet(glyphMap,'FontAwesome','FontAwesome.ttf'); export default iconSet; export const Button = iconSet.Button; export const TabBarItem = iconSet.TabBarItem; export const TabBarItemIOS = iconSet.TabBarItemIOS; export const ToolbarAndroid = iconSet.ToolbarAndroid; export const getImageSource = iconSet.getImageSource; 而 { "glass": 61440,"music": 61441,"search": 61442,"envelope-o": 61443,"heart": 61444,"star": 61445,"star-o": 61446,"user": 61447,//等等... } 这样一看使用方法也是非常地简单,综合上述代码,我们首先介绍一下其中的API: createIconSet(glyphMap,fontFamily[,fontFile]) 返回基于 那么非常简单,我们也可以编写一个我们自定义的图标组件: import createIconSet from 'react-native-vector-icons/lib/create-icon-set'; import glyphMap from './Iconfont.json'; const iconSet = createIconSet(glyphMap,'Iconfont','Iconfont.ttf'); export default iconSet; 最后的效果如下:
不仅如此,我们还可以在 <Icon.Button name="facebook" backgroundColor="#3b5998"> <Text style={{fontFamily: 'Arial',fontSize: 15}}>Login with Facebook</Text> </Icon.Button> 从而做出如下的效果:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- postgresql row_to_json的妙用
- vista系统下安装postgresql8.4时postgres超级用户的删除
- c# – 在FakeItEasy中使用什么是Dummy?
- 正则表达式 – joomla中的这个正则表达式是什么意思?
- C语言除法算法和取模运算的实现(多种算法,多种思路)
- c# – 如何在打开子报表时阻止crystal report viewer查询登
- 详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
- 正则表达式在iOS中的运用
- ruby-on-rails – 更多before_validation的方法
- xml – 为什么我不能在XSD中同时定义默认属性值和use = req