You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:如何替换strings.xml中字体图标为本地自定义图标?

嘿,这事儿其实和你之前用FontAwesome的路子差不多,我给你拆成几步,跟着来就行:

替换本地字体图标到Android项目的详细步骤

1. 准备好你的字体资源

  • 先把你本地的字体文件(一般是.ttf或.otf格式)复制到Android项目的src/main/assets目录里——要是没有assets文件夹,直接在main目录下新建一个就行。
  • 接着得找到每个目标图标对应的Unicode编码:通常字体图标包会自带说明文档(比如demo.html或者字符映射表),要是找不到,用系统自带的工具也能查:Windows搜「字符映射表」,Mac用「字符查看器」,打开你的字体文件就能看到每个图标的编码,格式是U+XXXX(比如U+E001)。

2. 更新strings.xml里的图标声明

把原来FontAwesome的编码换成新字体的编码就行,注意格式要转对:把U+换成&#x,最后加个分号。举个例子:

<resources>
    <!-- 替换成你的新图标对应的Unicode编码 -->
    <string name="icon_new_info">&#xE001;</string>
    <string name="icon_new_heart">&#xE002;</string>
</resources>

3. 修改Java代码里的字体加载逻辑

因为换了新字体,所以要把加载字体的文件名改成你刚放进assets里的那个。比如你的新字体叫my-custom-icons.ttf,代码就改成这样:

Button txt=(Button) findViewById(R.id.infotxt);
Button txt1=(Button) findViewById(R.id.hearttxt);
// 这里替换成你的新字体文件名,注意大小写要和assets里的完全一致
Typeface customIconFont = Typeface.createFromAsset(getAssets(), "my-custom-icons.ttf");
txt.setText(" " + getString(R.string.icon_new_info) + " ...");
txt.setTypeface(customIconFont);
txt1.setText(" " + getString(R.string.icon_new_heart) + " ...");
txt1.setTypeface(customIconFont);

4. 验证调试避坑

  • 先clean一下项目再重新编译,避免缓存搞事情。
  • 如果图标没显示出来,先查这几个点:
    • 字体文件是不是真的放进assets目录了?文件名有没有写错(Android对文件名大小写敏感哦)。
    • Unicode编码格式对不对?是不是&#xXXXX;这种格式,有没有漏写分号?
    • 是不是所有要显示图标的控件都调用了setTypeface?别漏了!

内容的提问来源于stack exchange,提问作者stacJohn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:07:15