Я пытаюсь нарисовать масштабированный текст с номером позиции для каждой фигуры 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 не предоставляет какого-либо метода для определения реального центра фигуры.