我正在开发一个 android 应用程序,我需要知道可以在一行中显示的字符数,以便用某种方法确定我的字符串的行数。
怎么能这样?坦克很多。
问问题
2422 次
4 回答
1
这应该为您完成工作(在没有 ide 的情况下从编码中给出或接受一些错误:-/)
int countLineBreaks(final TextView view, final String toMeasure) {
final Paint paint = textView.getPaint(); // Get the paint used by the TextView
int startPos = 0;
int breakCount = 0;
final int endPos = toMeasure.length();
// Loop through the string, moving along the number of characters that will
// fit on a line in the TextView. The number of iterations = the number of line breaks
while (startPos < endPos) {
startPos += paint.breakText(toMeasure.substring(startPos, endPos),
true, tv.getWidth(),(float[]) null);
lineCount++;
}
// Line count will now equal the number of line-breaks the string will require
return lineCount;
}
..你明白了;-)
于 2013-06-29T08:26:35.803 回答
0
每个字符都有自己的宽度。因为任何包含 10 个字符的字符串与另一个也包含 10 个字符的字符串不同。
你可以通过 --> textView.setTypeface(Typeface.MONOSPACE); 来设置它
等宽字体适用于使常规字符等宽。然后你可以做任何事情来获得一行可以放置多少个字符?
于 2013-06-29T07:42:13.477 回答
0
你可以试试这个
按照 geet的建议设置Typeface.MONOSPACE 。然后执行以下操作
Paint.measureText(String s)返回 String 的宽度。通过使用它,您可以获得所需的 1 个字符的宽度。通过View.getwidth()方法,您可以获得视图的宽度。所以从这两个值你可以计算出
于 2013-06-29T07:45:19.127 回答
-1
尝试这个:
int totalLine = textView.getMeasuredHeight() / textView.getLineHeight();
于 2014-04-11T11:51:21.017 回答