DynamicLayout добавляет дополнительное пространство
Я использую DynamicLayout для рендеринга SpannableString, но я не могу точно центрировать текст. Кажется, с самого начала есть какое-то смещение, от которого я не могу избавиться.
Вот моя реализация:
private Editable edit;
private DynamicLayout layout;
private void drawText(Canvas canvas) {
if (layout != null) {
edit.clear();
edit.append(textValue);
layout.draw(canvas);
return;
}
edit = Editable.Factory.getInstance().newEditable(textValue);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
layout = DynamicLayout.Builder.obtain(edit , mTextPaint, (int) mCircleBounds.right)
.setAlignment(Layout.Alignment.ALIGN_CENTER)
.setLineSpacing(0, 0)
.setIncludePad(false)
.build();
} else {
layout = new DynamicLayout(edit,
mTextPaint,
canvas.getWidth(),
Layout.Alignment.ALIGN_CENTER,
0, 0,
false);
}
layout.draw(canvas);
}
Любая помощь с благодарностью!