Я пытаюсь несколько способов центрировать 3 строки текста на часах и, похоже, не может понять это. Новые службы сторожевых украшений требуют, чтобы вы рисовали на холсте. Я инициализировать смещение текста, захватывая длину текста каждой строки и деления на 2.Текст центра на Watch
mXDateOffset = mTextDateColorPaint.measureText("May 21, 2015") /2;
mXTimeOffset = mTextTimeColorPaint.measureText("12:00:00")/2;
mXBatteryOffset = mTextBatteryColorPaint.measureText("99%") /2 ;
Затем, когда я установил текст и краски элементы холста я нахожу в центре прямоугольника (экран) минус чтобы найти начальную позицию текста.
canvas.drawText(timeText, bounds.centerX() - mXTimeOffset, 40.0f, mTextTimeColorPaint);
canvas.drawText(date, bounds.centerX() - mXDateOffset, 90.0f, mTextDateColorPaint);
canvas.drawText(mBatteryLevel, bounds.centerX() - mXBatteryOffset, 130.0f, mTextBatteryColorPaint);
Что я получаю это ...
Не уверен, что еще делать.
, который кажется очень хорошо сосредоточенным для меня, только не для фактического текста, который вы рисуете. «4: 39: 41» не имеет такой же длины, как «12: 00: 00». Я не понимаю, почему вы использовали бы другой текст для измерения и рисования. – njzk2
Исходные условия по умолчанию ... – JPM
, тогда вам просто нужно изменить значение смещения в соответствии с тем, что вы хотите нарисовать ... – njzk2