当 a 中的一个单词String
太大TextView
而不能与前面的单词放在同一行时,它会跳到下一行。这被证明是非常有用的。然而,这让我进退两难。My String
,出于我的特殊原因,需要在单词的每个字母之间有一个空格,并且在单词之间有两个空格。正因为如此,TextView
将分割单词在一行上,另一行在下一行。所以,我想我可能必须创建一个自定义View
来扩展TextView
和覆盖它跳到下一行的方式。但是看一下textview 的类文档,我找不到这样做的方法。因此,任何帮助、建议或建议将不胜感激!谢谢!
问问题
1449 次
1 回答
1
TextView
您可以通过一些修改来覆盖。
基本策略将是覆盖该onDraw()
方法并自定义绘制您的文本。您还必须覆盖onMeasure()
.
在您内部onDraw()
,您将预处理字符串中的自定义单词并根据需要插入换行符 ( \n
)。
遍历文本中的单词并将measureText(String)与您的当前宽度进行比较,TextView
以确定插入换行符的位置。不要忘记考虑“填充”。
示例:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
super.onMeasure(getSuggestedMinimumWidth(), getSuggestedMinimumHeight());
}
@Override
protected void onDraw(Canvas canvas) {
// preprocess your text
canvas.drawText(...);
}
于 2013-04-12T22:50:45.307 回答