3

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

4

4 回答 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 回答