1

Android 文档说androidx.wear.watchface.complications.rendering.ComplicationDrawable有 textTypeface 和 titleTypeface 属性。但是我没有找到如何使用它的信息。我曾尝试将字体资源、字体系列资源传递给那里,但没有效果。我需要通过什么才能生效?

是否可以更改字体样式Drawable complication

4

2 回答 2

1

虽然无法更改字体本身(据我所知),但您可以更改字体。如果您查看GitHub 上的 Google 表盘示例项目,您可以在 drawable 文件夹中找到一些复杂样式。在这里,您将看到如何更改字体的示例:

app:textTypeface="sans-serif-condensed"
app:titleTypeface="sans-serif-condensed"

我无法找到所有可用选项的完整最新列表,但过去一直为 Roboto 工作的一些选项是:

"sans-serif"
"sans-serif-light"
"sans-serif-condensed"
"sans-serif-black"
"sans-serif-thin"
"sans-serif-medium"
于 2022-02-23T16:02:22.867 回答
0

可以为复杂情况应用自定义字体。

这是我得到它的方法(在使您变得复杂之前使用它 - 调用时complication.render(canvas, zonedDateTime, renderParameters)):

ComplicationDrawable.getDrawable(context, complicationStyle)?.apply {
    activeStyle.run {
        //... other attributes
        setTextTypeface(ResourcesCompat.getFont(context!!, R.font.your_font_resource)!!)
    }
    (complication.renderer as CanvasComplicationDrawable).drawable = this
}

我知道这不是最好的实现,但它正在工作(使用 android 11、galaxy watch 4 one ui 4.0 测试)

于 2022-02-25T19:59:37.543 回答