我有一个活动,我想显示一个标题,占据了应用程序的前四分之一,并显示一组动态的文本.在某些情况下,它将全部适用于一行,我希望字体大小可以调整大小,因此它的大小和容易阅读.在某些情况下,它将在多行(通常小于4)并且需要更小.
复杂的是,如果我在setText中明确设置换行符,那么有时它会插入一个换行符,我没想到换行符,即:
"My first line of text\nMy Second line of text" Might get turned into (it's right adjusted in this version): "My first line of text My second line of text"
我不知道如何保持TextView试图插入换行符,或者让它只是照顾格式化整个事情.如果我将一些文本设置为一个真正长的单词,它会在某个选定的位置插入一个换行符.而其他时候,我只是随机得到最后几行文字.
我应该明确地将字体大小设置得很小,以便正确布局,然后手动调整大小?有没有一个“最佳实践”,我应该用这个?如果我将字体大小设置为相当大的字体,那么它的作品是很好的,但是找出这样做的“正确”方式是很好的.而且我宁可不必手动添加4行单行TextView并自己格式化.
我使用的布局xml是:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_marginTop="10dip" android:layout_marginRight="8dip" android:singleLine="false" android:ellipsize="marque" android:gravity="right|bottom" android:textAppearance="?android:attr/textAppearanceMedium" android:textSize="30sp" />
解决方法
您可以计算字符串长度,并将文本大小设置为适合每个长度的最佳大小
这种形式的东西
if(myString.length()==40){ myTextview.setTextSize(11); else if(myString.length()==25){ myTextview.setTextSize(16); ...
我希望这有帮助.