在没有 String.xml 的情况下使用 FontAwesome 从代码动态设置字体图标
Dynamically Set Font Icon from Code using FontAwesome without String.xml
我正在尝试在 textView 中使用 fontawesome.ttf 加载字体图标。
如果我将字符串值设置为 
到 string.xml,那么它可以工作文件并显示图标。但是,如果以编程方式将相同的文本 ""
设置为
textView.setText("")
然后它不显示图标,而是在 textview 上显示相同的文本。
在不引用 string.xml 文件的情况下以编程方式显示图标的任何替代方法?
尝试使用 Unicode 代码...\uf007
。
这应该可以正常工作:
textView.setText("\uf007");
我尝试将字符串转换为 16 进制整数,但效果很好。
new String(Character.toChars(Integer.parseInt(
str, 16)))
str 的 unicode 值类似于 f007。
这是我迄今为止找到的很好的例子。
ORIGINAL ANSWER
从答案中复制粘贴:
- 已复制
fontawesome-webfont.ttf
到您的资产文件夹
- 使用此页面找到我想要的图标的字符实体:http://fortawesome.github.io/Font-Awesome/cheatsheet/
在 strings.xml 中为每个图标创建了一个条目。例如一颗心:
<string name="icon_heart"></string>
在您的 xml 布局视图中引用了上述条目:
<Button
android:id="@+id/like"
...
android:text="@string/icon_heart" />
- 在我的 onCreate 方法中加载字体并为适当的视图设置它:
Typeface font = Typeface.createFromAsset( getAssets(), "fontawesome-webfont.ttf" );
Button button = (Button)findViewById( R.id.like );
button.setTypeface(font);
别忘了使用setTypeface()
把代码放在xml然后用
getString(R.string.fa_star_o);
工作正常
我正在尝试在 textView 中使用 fontawesome.ttf 加载字体图标。
如果我将字符串值设置为 
到 string.xml,那么它可以工作文件并显示图标。但是,如果以编程方式将相同的文本 ""
设置为
textView.setText("")
然后它不显示图标,而是在 textview 上显示相同的文本。
在不引用 string.xml 文件的情况下以编程方式显示图标的任何替代方法?
尝试使用 Unicode 代码...\uf007
。
这应该可以正常工作:
textView.setText("\uf007");
我尝试将字符串转换为 16 进制整数,但效果很好。
new String(Character.toChars(Integer.parseInt(
str, 16)))
str 的 unicode 值类似于 f007。
这是我迄今为止找到的很好的例子。
ORIGINAL ANSWER
从答案中复制粘贴:
- 已复制
fontawesome-webfont.ttf
到您的资产文件夹 - 使用此页面找到我想要的图标的字符实体:http://fortawesome.github.io/Font-Awesome/cheatsheet/
在 strings.xml 中为每个图标创建了一个条目。例如一颗心:
<string name="icon_heart"></string>
在您的 xml 布局视图中引用了上述条目:
<Button android:id="@+id/like" ... android:text="@string/icon_heart" />
- 在我的 onCreate 方法中加载字体并为适当的视图设置它:
Typeface font = Typeface.createFromAsset( getAssets(), "fontawesome-webfont.ttf" ); Button button = (Button)findViewById( R.id.like ); button.setTypeface(font);
别忘了使用setTypeface()
把代码放在xml然后用
getString(R.string.fa_star_o);
工作正常