我正在尝试在我的应用程序上使用Font Awesome,我能够使用 Typeface.createFromAsset()
集成字体,但我也想使用此字体提供的图标,但到目前为止我还没有能够这样做 .
此特定字体包含Unicode专用区(PUA)内的图标,用于媒体播放器控件,文件系统访问,箭头等内容 .
有没有人在Android上使用包含图标和符号的字体,这有可能吗?
我正在尝试在我的应用程序上使用Font Awesome,我能够使用 Typeface.createFromAsset()
集成字体,但我也想使用此字体提供的图标,但到目前为止我还没有能够这样做 .
此特定字体包含Unicode专用区(PUA)内的图标,用于媒体播放器控件,文件系统访问,箭头等内容 .
有没有人在Android上使用包含图标和符号的字体,这有可能吗?
14 回答
如果有人想知道如何添加程序,你必须这样做 .
在我的Android应用程序中,Font Awesome似乎对我很好 . 我做了以下事情:
将
fontawesome-webfont.ttf
复制到我的assests文件夹中使用此页面找到我想要的图标的字符实体:http://fortawesome.github.io/Font-Awesome/cheatsheet/
在strings.xml中为每个图标创建了一个条目 . 例如,一颗心:
试试IcoMoon:http://icomoon.io
选择所需的图标
为每个图标指定字符
下载字体
比如说,您选择了播放图标,为其分配了字母'P',并将文件
icomoon.ttf
下载到您的资产文件夹中 . 这是您显示图标的方式:XML:
Java的:
我已经就制作漂亮的Android应用程序进行了讨论,其中包括使用图标字体的说明,以及添加渐变以使图标更漂亮:http://www.sqisland.com/talks/beautiful-android
图标字体说明从幻灯片34开始:http://www.sqisland.com/talks/beautiful-android/#34
也许为时已晚,但我有同样的需求,所以我已经发布了这个https://github.com/liltof/font-awsome-for-android这是一个Android准备好的xml版本的字体真棒可用就像Keith Corwin说的
希望它会帮助别人 .
以上是很好的例子,效果很好:
但! >如果从xml设置的按钮内的字符串,这将有效:
如果需要动态添加它可以使用:
有一个小而有用library designed for this purposes:
Get demo on Google Play.
您可以在布局中轻松添加基于字体的图标:
你可以从xml中将font-icon膨胀为
Drawable
:Java代码:
链接:
Project page
Github repo
如果你想要编程的setText而不添加字符串到string.xml
在这里看到它的十六进制代码:
http://fortawesome.github.io/Font-Awesome/cheatsheet/
替换到0xf066
我在C#(Xamarin)中创建了这个帮助类,以编程方式设置text属性 . 它对我来说非常好用:
我认为应该很容易转换为Java . 希望它可以帮到某人!
我用于Font Awesome的库之一是:
https://github.com/Bearded-Hen/Android-Bootstrap
特别,
https://github.com/Bearded-Hen/Android-Bootstrap/wiki/Font-Awesome-Text
文档很容易理解 .
首先,在build.gradle中添加所需的依赖项:
其次,您可以在XML中添加:
但如果要使用上面的代码示例,请确保在根布局中添加此项:
FontView库允许您在应用程序中使用普通/ unicode字体字符作为图标/图形 . 它可以通过资产或网络位置加载字体 .
这个库的好处是:
https://github.com/shellum/fontView
例:
Layout:
Java:
还有另一个很好的解决方案,您可以直接在布局xml文件中使用,而不需要使用
setTypeface
.这是Joan Zapata的Iconify . 你可以阅读here Iconify v2 中的新内容 . 它包含9种不同的字体库,您可以通过向 build.gradle 文件添加依赖项来简单地使用它们 .
在布局xml文件中,可以在这些小部件之间进行选择:
我参加派对有点晚了,但我写了一个自定义视图,让你这样做,默认设置为entypo,但你可以修改它以使用任何iconfont:在这里查看:github.com/MarsVard/IconView
//编辑图书馆已经过时了,不再受支持了...这里有一个新的https://github.com/MarsVard/IonIconView
如果您只需要几个字体真棒图标,您还可以使用http://fa2png.io生成普通像素图像 . 但是如果你经常添加新的图标/按钮,我建议.ttf版本更灵活 .
由于所有的答案都很棒,但我不想使用一个库,每个解决方案只有一行java代码使我的
Activities
和Fragments
非常混乱 . 所以我写了TextView
类如下:您应该做的是将字体
ttf
文件复制到assets
文件夹中 . 并使用this cheat sheet查找每个图标字符串 .希望这可以帮助 .