Как вы делаете адаптацию осложнений?

Я следовал этому уроку о том, как добавить осложнения к циферблату, используя ComplicationDrawable, Я не могу понять, как мне сделать ComplicationDrawable реагировать на контент? Например, если тип данных для нижней сложности ComplicationData.TYPE_LONG_TEXTкак мне сделать мой ComplicationDrawable шире подстраивать под текст?

Вот мой код того, как я рисую границы для осложнений.

Я не могу найти пример этого нигде, так что, возможно, это невозможно.

1 ответ

Решение

В вашем коде уже есть все, что вам нужно. Единственное, чего не хватает, это установить границы в зависимости от типа сложности. Вот как я это делаю:

// Create a ComplicationDrawable object, and give it a Context.
ComplicationDrawable complicationDrawable = new ComplicationDrawable();
complicationDrawable.setContext(context);

// Set the ComplicationData from the onComplicationDataUpdate(int id, ComplicationData data) callback in your WatchFaceService.Engine class.
complicationDrawable.setComplicationData(data); 

// Set the bounds based on the current complication type.
Rect bounds = new Rect();
if (data.getType() == ComplicationData.TYPE_LONG_TEXT) {
    bounds.set(getLongTextBounds());
} else {
    bounds.set(getShortTextBounds());
}
complicationDrawable.setBounds(bounds);

// Set all other customization options, and draw the ComplicationDrawable to your canvas.
Другие вопросы по тегам