如何知道一行中可以放置多少个字符?

时间:2013-06-29 07:34:16

标签: android android-layout textview android-linearlayout

我正在开发一个Android应用程序,我需要知道可以在一行中显示的字符数,以通过某种方法确定我的字符串的行数。
怎么能这样呢? 坦克很多。

4 个答案:

答案 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();