我正在尝试为 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 包的 Path 对象不提供任何方法来找到形状的真实中心。
1 回答

aluckdog
TA贡献1847条经验 获得超7个赞
您需要将 SVG 元素嵌套在具有固定纵横比的 SVG 容器中。然后,您可以根据根容器 SVG 的固定纵横比为 HTML 文本或 SVG 文本建立字体大小。
添加回答
举报
0/150
提交
取消