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

TileService新UI Builder API是否支持自定义字体?如何设置?

TileService自定义字体设置方案

是否支持自定义字体?

TileService的新UI Builder API支持自定义字体,只是需要通过资源关联的方式实现,而非直接在LayoutElementBuilders.FontStyle.Builder或LayoutElementBuilders.Text类中调用方法。

具体实现步骤

  • 第一步:添加字体资源
    将自定义字体文件(.ttf/.otf格式)放入项目的res/font/目录(若不存在该目录则手动创建)。

  • 第二步:创建字体资源实例
    通过FontResource引用你的自定义字体:

    val customFont = FontResource.Builder()
        .setResourceId(R.font.your_custom_font) // 替换为你的字体资源ID
        .build()
    
  • 第三步:构建资源提供者
    将自定义字体添加到ResourcesProvider中,供Tile加载:

    val resourcesProvider = ResourcesProvider.Builder()
        .addFont(customFont)
        .build()
    
  • 第四步:在文本元素中指定自定义字体
    通过FontStyle.Builder的setFontFamily方法,以font://前缀+资源ID的格式关联字体:

    val customText = Text.Builder()
        .setText("自定义字体展示文本")
        .setFontStyle(
            FontStyle.Builder()
                .setFontFamily("font://${R.font.your_custom_font}")
                .build()
        )
        .build()
    
  • 第五步:在Tile构建时关联资源提供者
    在onTileRequest方法中,将ResourcesProvider绑定到Tile.Builder:

    override suspend fun onTileRequest(requestParams: RequestParams): Tile {
        val rootLayout = Layout.Builder()
            .setRoot(customText)
            .build()
    
        return Tile.Builder()
            .setResourcesVersion("1") // 更新字体时需修改此版本号,触发资源刷新
            .setTileLayout(rootLayout)
            .setResourcesProvider(resourcesProvider)
            .build()
    }
    

注意事项

  • 确保字体文件路径和资源ID正确,否则无法加载字体。
  • 每次更新字体资源后,必须修改setResourcesVersion的参数值,否则系统会使用缓存的旧资源。
  • 选择适合Wear OS屏幕尺寸的字体,避免因字体过大导致布局错位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 09:15:48