Android 文档说androidx.wear.watchface.complications.rendering.ComplicationDrawable
有 textTypeface 和 titleTypeface 属性。但是我没有找到如何使用它的信息。我曾尝试将字体资源、字体系列资源传递给那里,但没有效果。我需要通过什么才能生效?
是否可以更改字体样式Drawable complication
?
Android 文档说androidx.wear.watchface.complications.rendering.ComplicationDrawable
有 textTypeface 和 titleTypeface 属性。但是我没有找到如何使用它的信息。我曾尝试将字体资源、字体系列资源传递给那里,但没有效果。我需要通过什么才能生效?
是否可以更改字体样式Drawable complication
?
虽然无法更改字体本身(据我所知),但您可以更改字体。如果您查看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"
可以为复杂情况应用自定义字体。
这是我得到它的方法(在使您变得复杂之前使用它 - 调用时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 测试)