我认为这与TextView的字宽设置相反
我有一个TextView,我正在显示一些报告数据.我使用等宽字体TypefaceSpan作为其中的一部分,因为我想要列排列.
我使用我的测试Android设备来计算出我可以容纳多少列,但Android模拟器似乎只有少了一列,这使得事物在纵向模式下以难看的方式包裹.
有没有办法找出一行中应该有多少个字符?
And*_*lva 12
答案是使用textView的Paint对象的breakText().这是一个样本,
int totalCharstoFit= textView.getPaint().breakText(fullString, 0, fullString.length(),
true, textView.getWidth(), null);
Run Code Online (Sandbox Code Playgroud)
现在totalCharstoFit包含可以放入一行的确切字符.现在,您可以创建完整字符串的子字符串,并将其附加到TextView,如下所示,
String subString=fullString.substring(0,totalCharstoFit);
textView.append(substring);
Run Code Online (Sandbox Code Playgroud)
要计算剩余的字符串,你可以这样做,
fullString=fullString.substring(subString.length(),fullString.length());
Run Code Online (Sandbox Code Playgroud)
现在完整的代码,
在while循环中执行此操作,
while(fullstirng.length>0)
{
int totalCharstoFit= textView.getPaint().breakText(fullString, 0, fullString.length(),
true, textView.getWidth(), null);
String subString=fullString.substring(0,totalCharstoFit);
textView.append(substring);
fullString=fullString.substring(subString.length(),fullString.length());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4274 次 |
| 最近记录: |