在SVG形状中编写可缩放文本

3
我正在尝试在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 包中的路径对象没有提供任何查找形状真正中心的方法。
1个回答

1
你需要将SVG元素嵌套在具有固定纵横比的SVG容器中。然后,你可以根据根容器SVG的固定纵横比为HTML文本或SVG文本建立字体大小。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接