Напишите масштабированный текст в форме SVG - PullRequest
3 голосов
/ 10 июля 2019

Я пытаюсь нарисовать масштабированный текст с номером позиции для каждой фигуры SVG на Android.

Примерно так: http://static -4.app4smart.me / добавления / сообщений / пальцы / 13284 / С-9553-1971d66549.jpg

Кто-нибудь знает, как это можно реализовать? Основная проблема - найти лучшее место для размещения текста внутри фигуры и масштабировать его в соответствии с размером фигуры SVG.

На самом деле я понял, как разместить и масштабировать текст, как в примере ниже:

<svg x="0px" y="0px"
 viewBox="0 0 800 800" style="enable-background:new 0 0 800 
800;" xml:space="preserve">
<polygon style="fill:#E2BE9C;" points="509.8,704.8 517.4,799.3 
436.4,799.3 399.5,757.9 409.6,661.6 440,620.3 "/>
<text xmlns="http://www.w3.org/2000/svg" x="458" y="709" text- 
anchor="middle" textLength="20" lengthAdjust="spacingAndGlyphs" 
font- 
size="10">Hey!</text>
</svg>

Здесь я просто получаю объект RectF of Path и получаю точный центр, куда я помещаю текст. Но я все еще не могу найти лучшее место для размещения текста и насколько он должен быть увеличен / уменьшен.

Потому что для такой формы этот подход не может быть применен.

 <svg x="0px" y="0px"
         viewBox="0 0 800 800" style="enable-background:new 0 0 800 
    800;" xml:space="preserve">
    <polygon style="fill:#58585A;" points="201.7,175.9 294.4,146.9 
    414.9,170.2 252.5,191.4 159.6,231.3 110.1,263.9 127.4,226 "/>
    </svg>

И для элементов этот подход тоже не очень хорош. Кажется, что я должен найти самый большой прямоугольник внутри фигуры SVG и внутри этого прямоугольника поместить мой текст, масштабированный до размеров прямоугольника. Есть идеи как это сделать?

Объект Path из пакета android.graphics не предоставляет какого-либо метода для определения реального центра фигуры.

1 Ответ

1 голос
/ 10 июля 2019

Вам необходимо вложить элементы SVG в контейнер SVG с фиксированным соотношением сторон.Затем вы можете установить размер шрифта для текста HTML или текста SVG относительно фиксированного соотношения сторон корневого контейнера SVG.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...