- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
有一个固定大小的字符和一个应该将整个单词包装到下一行的文本,计算应该最接近正方形的拟合中心正方形的最佳算法是什么占用最少的空间并且对用户来说看起来不错?
屏幕是这样定义的
#define max_width 1024
#define max_height 768
#define char_width 10
#define char_height 16
计算生成的换行字符大小的函数
void calculate_wrapped_text_size( const char *text, int box_width_in_px, int &width_in_chars, &height_in_chars )
{
...
}
所以给定一个输入Line1 text longtext longertext anytext\n
Line2 <... ...> 它将计算适合给定宽度的换行文本
void find_optimal_size( const char *text, int &optimal_width_in_px, int &optimal_height_in_px )
{
...
}
有没有什么标准的方法可以计算出最佳的宽度和高度尺寸,从而使它看起来最适合用户?我想找到最小面积框的路径,然后迭代到边上最小差异的大小?
最佳答案
你想的“最小面积框”肯定只是一条线——这不是你想要的。
首先,检查您是否需要自己编写换行算法,因为大多数 GUI 工具包(无论是 native 的还是跨平台的)都可以为您完成这项工作。
如果您需要自己执行此操作,请这样做:计算您希望允许的最大线宽。基于显示窗口的宽度或基于该窗口中其他小部件的布局。
然后对于每一行:写到一个单词超过最大宽度,该单词是第一个需要下一行的单词。
您必须考虑一些细节:首先,您的字母是否都具有相同的宽度(这将使字宽计算更容易)以及您认为哪些字符是字边界(空格、制表符、"-").
有一些极端情况需要考虑,例如如果窗口太窄以致某个特定单词即使是该行的第一个单词也放不下怎么办:上面的算法只会继续添加越来越多的行;你必须在算法中添加一个特殊情况,如果一个词是该行的第一个词,它可能不会被自动换行,而是必须被字符换行,即尽可能多地在行中写入字符,然后留在下一行。
关于c - 使用 wordwrap 2 的最佳消息框大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17127739/
我该如何解决这个问题?第 3 点应该与其他点一样,但在自动换行之外会产生问题。自动换行也应与其他行具有相同的边距。出了什么问题? 这是背后的代码: .gruene-liste { list-s
我在 php 中使用 wordwrap() 函数时遇到问题,例如中文字符。当 wordwrap 函数中的 $cut 参数设置为 true 时,它会通过插入问号来破坏字符串。 有解决办法吗? 最佳答
我正在尝试使用 wordwrap() 来打断文本,但我不希望它在每次达到特定长度时都打断文本,我希望它只打断超过任何特定长度的单词,例如: "); ?> 好吧,它可以工作,但我只想打破超过特定长度的单
如何使用自动换行符显示长字符串、网站地址、单词或符号集以保持 div 宽度?我猜是某种自动换行。通常添加空格是可行的,但是否有 CSS 解决方案,例如自动换行? 例如,它(非常讨厌地)与 div 重叠
我应该如何设置 WordWrap = false到 System.Windows.Forms.Label ? 我在面板上有一个标题,它应该显示 "MyPanel capt..." .所以我使用 Aut
我有一个 Canvas 、字形、文本和整数变量空间。我想根据 TRadioGroup 的 ItemIndex 将字形和文本绘制到 Canvas 上(例如,如果 ItemIndex = 1,则在文本的左
我一直在阅读一些关于 WordWrap 不适用于 QTreeView 的论坛(如屏幕外显示的文本),但我找不到任何解决此问题的“黑客”。 bookTreeView 被封装在另一个小部件中,这可能是问题
我的 Windows 窗体应用程序中有一个 CheckedListBox,但可以添加太宽的项目以供控件显示。发生这种情况时,有什么办法可以让文本换行到下一行吗? 我知道对于标准的 ListBox 这是
我发现的大多数自动换行功能都绑定(bind)到 css 和/或浏览器 dom。我在 javascript 环境 (rhino) 中工作,需要找到或设计一个更好的自动换行,在给定行长度值之前的空白处中断
我创建了一个人们可以填写的 jQuery 表单。完成后,他们可以单击两个按钮之一将表单发布到 PHP 文件。 PHP文件处理表单中的数据并将其放入数据库中。然后数据库有一些触发器,并输出数据。 我想知
我有一个主登录页面,我们可以访问该页面并将其带入嵌入式浏览器。我正在尝试让文字在页面上正确换行。 我们将 CSS 类附加到通过的 html 元素,但自动换行似乎被忽略了。我倾向于认为这是可以设置的 W
我有一个自动换行算法,基本上可以生成适合文本宽度的文本行。不幸的是,当我添加太多文本时它会变慢。 我想知道我是否监督了可以进行的任何重大优化。此外,如果任何人的设计仍然允许更好的行字符串或行字符串指针
我创建了几个不同的 UITableViewCell我的 tableViewController ,这是因为我有不同的数据位要显示,具体取决于返回的内容。正因为如此,每个 UITableViewCell
我在一个简单的页面上有一个 Bootstrap 布局,只有一些行和一些列在全屏上排序,没有设置 with 或 hight 并且应该保持这种状态。 这是我的布局定义
我有一个标签 (#linkDiv),一旦“解锁”,它就会变成一个按钮。而作为标签,文本比按钮长,所以需要换行。我已经做了 white-space:normal; word-wrap: break-wo
有一个固定大小的字符和一个应该将整个单词包装到下一行的文本,计算应该最接近正方形的拟合中心正方形的最佳算法是什么占用最少的空间并且对用户来说看起来不错? 屏幕是这样定义的 #define max_wi
我目前有一个 wordwrapped-JTextArea 作为聊天程序的用户输入窗口。如何使 JTextArea 不调整大小以自动适应大文本?我已经将 JTextArea 设置为 2 行: user_
在 WordWrap 模式下,如何在 QLabel 中设置行高? 最佳答案 使用 HTML 文本: QString template = "%2"; QString targetText = temp
PHP 的 wordwrap()对于 UTF-8 等多字节字符串,该函数无法正常工作。 评论里有一些mb安全函数的例子,但是通过一些不同的测试数据,它们似乎都存在一些问题。 该函数应采用与 wordw
有没有办法在 IE7 中自动换行 Slickgrid 列标题?我有大约 20+网格中的列 - 几乎所有列都有 2 个或更多单词。 感谢您的帮助! 最佳答案 我通过编辑 2 个 css 标签解决了这个问
我是一名优秀的程序员,十分优秀!