我正在开发一个Android应用程序,我需要知道可以在一行中显示的字符数,以通过某种方法确定我的字符串的行数。
怎么能这样呢?
坦克很多。
答案 0 :(得分: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;
}
..你明白了; - )
答案 1 :(得分:0)
每个角色都有自己的宽度。 因为任何包含10个字符的String与另一个包含10个字符的String不同。
你可以通过 - >设置它textView.setTypeface(Typeface.MONOSPACE);
等宽字体用于制作常规字符宽度相等。 然后你可以做任何事情来获得可以在一行中放置多少个字符?
答案 2 :(得分:0)
你可以试试这个
将Typeface.MONOSPACE设置为geet建议。然后执行以下操作
Paint.measureText(String s)返回String的宽度。通过使用它,您可以获得所需的1个字符的宽度。从View.getwidth()方法中,您可以获得视图的宽度。所以从这两个值中你可以计算
答案 3 :(得分:-1)
试试这个:
int totalLine = textView.getMeasuredHeight() / textView.getLineHeight();