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