我试图在我的应用程序中使用Font Awesome,我可以使用Typeface.createFromAsset()来集成字体,但我也想使用这个字体提供的图标,但到目前为止我还没有做到这一点.

此特定字体包含Unicode专用区域(PUA)内的图标,用于媒体播放器控件、文件系统访问、箭头等.

有没有人在Android上使用过包含图标和符号的字体,这可能吗?

推荐答案

在我的Android应用程序中,font Awese似乎对我来说运行得很好.我做了以下工作:

  1. 已将fontawesome-webfont.ttf复制到我的assets资源 文件夹中
  2. 找到了我想要的图标的角色实体,使用这个页面:http://fortawesome.github.io/Font-Awesome/cheatsheet/
  3. 在字符串中创建了一个条目.每个图标的xml.例如心脏:

    <string name="icon_heart">&#xf004;</string>
    
  4. 在我的XML布局视图中引用了上述条目:

     <Button
         android:id="@+id/like"
         style="?android:attr/buttonStyleSmall"
         ...
         android:text="@string/icon_heart" />
    
  5. 在我的onCreate方法中加载字体并将其设置为适当的视图:

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

Android相关问答推荐

如何正确增加LazyStream中的变量

Kotlin DSL:为什么我可以从Play Store获取发布版本的日志(log)?

房间@嵌入式VS一对一关系

属性可选的涟漪效果ItemBackEarth Borderless不适用于Android 13和更高版本

Android手柄注射周期错误,多个模块引用一个核心模块

第一次使用onBackPressed()、NavigateUp()加载时MapView崩溃

我无法在底部导航栏中正确导航-Android底部导航视图

Android 14预测性背部手势-闪烁的白色背景色

需要 java 17 而不是 java 11:Android CI-CD GitHub Actions

retrofit2.HttpException: HTTP 401

在 Jetpack Compose 中对齐行项目

安卓模拟器打不开

了解 Compose 声明性逻辑

Jetpack Compose - 每次点击按钮都不起作用

如何在 Jetpack Compose 中的 VisualTransformation 之后将光标保持在文本字段的末尾

状态值更改时屏幕未重新组合 - Jetpack Compose

使用默认使用 RTL 语言的项目本地化 android 应用程序

调用时 listFiles() nullpointerexception

插入查询室 OnConflictStrategy.REPLACE

jetpack compose 中的可点击指示是什么?