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

Android第三方启动页库自定义字体无法修改问题求助

问题汇总
  • 项目以启动页为初始Activity,初次使用AwesomeSplashScreen库时,titleFont属性要求传入String类型参数,无法适配本地Int类型的字体资源ID、Typeface对象,尝试将资源转字符串传入始终报assets目录相关错误
  • AwesomeSplashScreen发布时间较早,遵循旧版Android开发规范要求字体存放于assets目录,手动新建assets目录放入字体后问题仍未解决
  • 更换Splashy库时遇到依赖兼容问题:
    • 引入implementation 'com.github.rahuldange09:Splashy:v1.1.0'可正常运行,但无修改字体的开放接口
    • 引入implementation 'com.rbddevs.splashy:splashy:1.3.0'时无法识别、导入Splashy类,完全无法使用
解决方案

方案1:继续使用AwesomeSplashScreen的正确字体配置

注意:该库的字体读取逻辑固定从应用assets目录读取文件,不支持res/font目录下的字体资源,按以下步骤配置即可生效:

  • 确认assets目录层级正确:在对应业务模块的src/main/路径下新建assets文件夹,与java、res目录同级,不要建在res目录或其他子目录下
  • 将目标字体文件(如title_font.ttf)直接放在assets根目录,若要新建子目录存放,传入属性值时要补全子目录路径,容易出错不推荐
  • 配置titleFont时直接传入字体文件名字符串即可,无需额外加路径前缀,参考代码:
AwesomeSplashScreen.Builder(this)
    .title("应用名称")
    .titleFont("title_font.ttf")
    // 其余启动页配置(背景色、logo、动画时长、跳转目标页等)
    .show()

如果仍报assets相关错误,逐一排查:字体文件名大小写是否和实际一致、文件后缀是否填写正确(不要把otf误写为ttf)、assets目录是否在正确的模块路径下。

方案2:修复Splashy 1.3.0版本依赖问题并配置自定义字体

1.3.0版本无法识别类的核心原因是未配置对应maven仓库,按以下步骤处理:

  • 先在项目级settings.gradle(旧版Android Studio项目为项目级build.gradle)的repositories配置块中添加jitpack仓库配置,同步gradle后即可正常导入Splashy类
  • 该版本支持直接传入Typeface对象设置字体,不需要将字体放到assets目录,直接引用res/font下的字体资源即可,参考代码:
val customTypeface = ResourcesCompat.getFont(this, R.font.app_title_font)
Splashy(this)
    .setTitle("应用名称")
    .setTitleTypeface(customTypeface)
    // 其余启动页配置
    .show()

方案3:无依赖原生实现(推荐)

如果第三方库兼容成本过高,直接用原生API实现启动页即可,代码量极低且完全可控,不会出现版本兼容、接口缺失问题:

  • 新建一个空Activity作为启动入口Activity,布局中放置logo控件、标题TextView,TextView直接通过android:fontFamily="@font/app_title_font"属性引用res/font目录下的字体资源,不需要额外写代码加载字体
  • 给启动页加2-3秒的延时逻辑,时间到后跳转到主Activity并finish掉启动页即可,所有样式、动画、字体都可以直接通过布局或原生API配置,没有限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:33:19