2011-04-05 66 views
0

我正在编写一个应用程序,其中的一部分显示一行文本。在某些情况下,该行文本将占用多行。问题是我只希望它占用一行,并且当我将它设置为java或xml来只占用一行时,文本就会被截断。我该如何做到这一点,以便它自动调整文本的字体大小,以便它只占用一行而不被截断?如何在android中自动调整textSize?

回答

3

Paint.measureText()一起使用比例:

(文字大小/ measureText宽度)=(perfectSize /屏幕宽度)

求解完美的文字大小:

perfectSize = (text size/measureText width) * screenWidth; 

可以发现屏幕宽度与从Display类。

把它变成了一个数学问题!

+0

我刚试过这个,发生了什么事,每一次,文字都变得如此之小,以至于我看不见它。 – Ephraim 2011-04-06 01:56:26

+0

因为错误的函数,应该修改为perfectSize =(text size/measureText width)* screenWidth; – brian 2012-04-12 03:11:38

+0

@brian,你是对的,我的愚蠢的错误,谢谢:) – 2012-04-12 17:13:39

0

如果您使用Paint#measureText,这并不难。

基本上,直到你找到一个措施,比你TextView的宽度,你会开始用字体高度比你TextView的高度较小,然后遍历(或做一个二进制搜索)通过不同大小的字体。

它需要一些实现,因为框架没有提供“自动”的方式。