Как иметь круглый TextView

Я пытаюсь сделать круговой TextView. Его круг, в котором я хочу разместить все пространство над круговым пузырьком, как показано на рисунке ниже.

Пожалуйста, смотрите прикрепленное изображение.

Circular bubble with text in side

На этом изображении мы имеем круговой пузырь с круговым текстом в нем. Я уже пытался установить овальную форму .xml в качестве фона TextView, но все равно не повезло.

Изменить:

По мере увеличения длины текста. Он должен уменьшаться по размеру, чтобы поместиться внутри круга. Это труднее всего подумать.

Ответы

Ответ 1

Вам нужно создать пользовательский вид, простирающийся от TextView, возможно, установив круг как фоновое изображение и вычислив ширину текста/сломав строки вручную в соответствии с шириной текста.

Чтобы вычислить ширину строки, см. Как рассчитать ширину шрифта строки в пикселях?

Конечно, требуется математика и расчеты для измерения свободного места на линию; но я думаю, что это единственный способ, так как там нет стандартного компонента для этого.

Чтобы поместить текст в представление, используйте drawText класса Canvas.