【问题标题】:How can I draw a complication slot on my watch face?如何在表盘上绘制复杂功能槽?
【发布时间】:2018-10-21 16:28:27
【问题描述】:
我正在开发自己的 Android 表盘,到目前为止一切正常。现在,我尝试创建我的第一个复杂功能以显示秒数。我知道我需要为这种复杂情况创建自己的数据提供程序。我已经在 YouTube 上看过一些视频并阅读了一些文档。我的问题是:
- 如何创建一个复杂功能槽以显示在我的什么脸上?
- 如何设置它在表盘上的位置?
- 我需要为此创建一个活动吗?
【问题讨论】:
标签:
android-wear-2.0
android-wear-complication
【解决方案1】:
如何创建一个复杂功能槽以显示在我的什么脸上?
最简单的方法是使用ComplicaitonDrawable。它将为您处理显示内容(倾斜、文本、图标等)的所有逻辑。它也可以设计成与您的表盘融为一体。每当您的表盘收到回调时,请务必使用复杂数据填充它:
@Override
public void onComplicationDataUpdate(int id, ComplicationData data) {
mComplicationDrawable.setComplicationData(data);
}
如何设置它在表盘上的位置?
ComplicationDrawable 可以轻松地绘制在画布上的任何位置:
mComplicationDrawable.setBounds(myComplicationBounds);
mComplicationDrawable.draw(canvas, currentTimeMillis);
我需要为此创建一个活动吗?
您不需要 Activity 来设置并发症槽的位置(除非您希望用户能够选择/更改位置)。
您确实需要一个设置活动来让用户为您的并发症槽选择数据提供程序。谷歌提供了一个示例表盘,显示了推荐的方法。它可以在GitHub 上找到。