TextView 获取行数,某一行的内容,某行的宽度

获取行数

ViewTreeObserver vto = textView.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

    @Override
    public void onGlobalLayout() {
        ViewTreeObserver obs = textView.getViewTreeObserver();
        obs.removeGlobalOnLayoutListener(this);
        int lineCount = textview.getLineCount(); //行数

    }
});

//或者
textview.setText(“Some text”);
textview.post(new Runnable() {
    @Override
    public void run() {
        int lineCount = textview.getLineCount();//行数
    }
});

 

获取行的内容和宽度

Layout layout = edit.getLayout();
String text = edit.getText().toString();
int start = 0;
int end;
for (int i = 0; i < edit.getLineCount(); i++) {
    end = layout.getLineEnd(i);
                    
    String line = text.substring(start, end); //指定行的内容
    start = end;
    float width = layout.getLineWidth(i); //指定行的宽度
    
    Log.e("test", line + "," + width);
}

 

文章来自:http://www.cnblogs.com/zijianlu/p/4876826.html
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3