【发布时间】:2011-07-30 09:23:42
【问题描述】:
我正在编写一个应用程序,其中的一部分显示一行文本。在某些情况下,该行文本将占用多行。问题是我只希望它占一行,当我在java或xml中设置它只占一行时,文本被截断。我该如何让它自动调整文本的字体大小,使其只占用一行而不会被截断?
【问题讨论】:
标签: android textview text-size
我正在编写一个应用程序,其中的一部分显示一行文本。在某些情况下,该行文本将占用多行。问题是我只希望它占一行,当我在java或xml中设置它只占一行时,文本被截断。我该如何让它自动调整文本的字体大小,使其只占用一行而不会被截断?
【问题讨论】:
标签: android textview text-size
与Paint.measureText()一起使用比例:
(文本大小/measureText 宽度) = (perfectSize/screenWidth)
解决完美的文本大小:
perfectSize = (text size / measureText width) * screenWidth;
您可以使用Display 类中的getWindowManager().getDefaultDisplay().getWidth() 找到屏幕宽度。
把它变成一道数学题!
【讨论】:
如果您使用Paint#measureText,这并不难做到。
基本上,您将从小于TextView 高度的字体高度开始,然后遍历(或进行二分搜索)不同大小的字体,直到找到小于@987654323 宽度的字体@。
它需要一些实现,因为框架没有提供“自动”的方式。
【讨论】: