使用复杂的api有一个图标类型,但是当涉及到绘制图标时,我不确定如何做。
当我画真正的手表表面时,似乎没有一个Drawicon方法。像画布一样的东西。我只能看到如何绘制位图。
在我的绘图并发症方法中,我有:
} else if (complicationData.getType() == ComplicationData.TYPE_ICON) {
Icon icon = complicationData.getIcon();
然后如何将图标绘制到画布上?
这里的代码实验室不会告诉我们如何绘制图标:https://codelabs.developers.google.com/codelabs/complications/index.html?index=..%2F..%2Findex#3
相反,我可以将所有可绘制文件复制到本地可穿戴模块,并通过传入字符串绕过图标类型,然后从中只绘制适当的位图。但一定有办法从图标上画出来否则为什么会有呢?
我也无法从google上找到如何将图标转换为位图的方法,但这似乎也很愚蠢,因为我必须首先将位图转换为图标,因为api需要一个图标。
感谢任何帮助。
谢谢。
最佳答案
好吧,所以我不知道我是怎么错过的,但很简单
Drawable drawable = icon.loadDrawable(getApplicationContext());
那就做你可能已经知道的事情:
if (drawable instanceof BitmapDrawable) {
Bitmap bitmap;
bitmap = ((BitmapDrawable) drawable).getBitmap();
canvas.drawBitmap(bitmap, complicationsX, mTopComplicationY, null);
}
我在看这里
https://developer.android.com/reference/android/graphics/drawable/Icon.html#loadDrawable(android.content.Context)
然后看到它,想知道为什么我没有试过。
编辑回应评论:如果你想使用一个矢量绘图,然后根据需要调整。