使用不带String.xml的FontAwesome从代码动态设置字体图标

时间:2015-01-07 18:23:24

标签: android font-awesome custom-font

我正在尝试使用textView中的fontawesome.ttf加载字体图标。 如果我通过string.xml设置字符串值,那么它将工作文件并显示图标。但是,如果将相同的文本""以编程方式设置为  textView.setText("") 然后它没有显示图标,而是在textview上显示相同的文字。

以编程方式显示图标而不引用string.xml文件的任何替代方法?

4 个答案:

答案 0 :(得分:8)

尝试使用Unicode代码... \uf007 这应该可以正常工作:

textView.setText("\uf007");

答案 1 :(得分:5)

我尝试使用16位整数转换字符串,它运行正常。

new String(Character.toChars(Integer.parseInt(
                        str, 16)))

str具有类似于f007的unicode值。

答案 2 :(得分:1)

这是我到目前为止发现的一个很好的例子。

<强> ORIGINAL ANSWER

copy&amp;粘贴答案:

  1. fontawesome-webfont.ttf复制到您的assests文件夹
  2. 使用此页面找到了我想要的图标的字符实体:http://fortawesome.github.io/Font-Awesome/cheatsheet/
  3. 在strings.xml中为每个图标创建一个条目。例如,一颗心:

    <string name="icon_heart">&#xf004;</string>

  4. 在您的xml布局视图中引用了所述条目:

  5.   

    <Button android:id="@+id/like" ... android:text="@string/icon_heart" />

    1. 在onCreate方法中加载字体并将其设置为适当的视图:
    2.   

      Typeface font = Typeface.createFromAsset( getAssets(), "fontawesome-webfont.ttf" ); Button button = (Button)findViewById( R.id.like ); button.setTypeface(font);

      别忘了使用setTypeface()

答案 3 :(得分:0)

将代码放入xml中,然后使用

getString(R.string.fa_star_o);

工作正常