我正在尝试在Android上为每个Svg形状绘制带有位置编号的缩放文本。
类似这样的事情: http://static-4.app4smart.me/uploads/posts/thumbs/13284/f-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>
在这里,我仅获得Path对象的RectF并获得放置文本的确切中心。 但是我仍然找不到更好的放置文本的地方以及必须缩放的大小。
由于这种形状,因此无法应用此方法。
<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形状内找到最大的矩形,并在此矩形内放置我的文本,并按比例缩放到矩形尺寸。 知道怎么做吗?
android.graphics包中的路径对象未提供任何找到形状真实中心的方法。
答案 0 :(得分:1)
您需要以固定的长宽比将SVG元素嵌套在SVG容器中。然后,您可以根据根容器SVG的固定长宽比,为HTML文本或SVG文本建立字体大小。