gpt4 book ai didi

java - "Zoom"文本在约束/框内尽可能大

转载 作者:搜寻专家 更新时间:2023-11-01 01:38:50 25 4
gpt4 key购买 nike

第一个问题:您有 400 像素的宽度可以继续,并且需要在该限制内尽可能大地容纳一些文本(因此,文本应使用该空间量)。

加入一个新的约束:如果文本只是“A”,那么它不应将其缩放到 100 像素高度以上(或某些特定的字体大小)。

然后,最后一种情况:换行。以尽可能大的方式适合一些文本,例如400 x 150 像素。

一个明显的方法是简单地从点 1 开始,然后增加直到你不能再适应它。这对所有三个问题都有效,但会非常粗糙。边界内的单行拟合可以通过用一些固定的点大小编写它来完成,检查文本的结果像素边界,然后简单地用转换缩放它(然后文本也适当缩放,查看TransformUI ).

任何关于其他攻击方法的想法都将不胜感激!

最佳答案

由于您要建模的内容很复杂,尤其是有换行符,因此您尝试所有尺寸的最初建议是正确的,尤其是在需要准确的情况下。

但是,您可以使用二进制搜索来查找合适的字体大小,而不是测试每个值。您知道大小介于 1 和 100 之间(您的上限)。使用二进制搜索,每个测试设置字体大小并检查生成的布局。如果文本太大,则我们搜索当前可能值范围的下半部分。如果字体大小合适,那么我们搜索上半部分。你的搜索最多使用7次尝试(100 log base 2四舍五入),它会很精确,找到最大的尺寸不会超过,如果你以后需要添加更多的需求,它会很灵活,比如混合字体或更严格的布局限制。

我假设您正在使用一个文本组件进行换行,并且您可以将最大宽度设置为 400。因此,您设置字体大小并进行布局,返回所需的高度,布局给定宽度内的文本。

您可以使用提示来尝试引导算法更快地得出结果,例如使您的第一个猜测接近预期大小,但文本呈现速度很快,性能提升可能不值得付出实现努力。

参见维基百科 - Binary Search Algorithm

关于java - "Zoom"文本在约束/框内尽可能大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2837410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com