zoukankan      html  css  js  c++  java
  • 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();//行数
        }
    });
    final TextView title = (TextView)findViewById(R.id.text);
            title.setText("A really long text");
            ViewTreeObserver vto = title.getViewTreeObserver();
            vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    
                @Override
                public void onGlobalLayout() {
                    ViewTreeObserver obs = title.getViewTreeObserver();
                    obs.removeGlobalOnLayoutListener(this);
                    if(title.getLineCount() > 3){
                        Log.d("","Line["+title.getLineCount()+"]"+title.getText());
                        int lineEndIndex = title.getLayout().getLineEnd(2);
                        String text = title.getText().subSequence(0, lineEndIndex-3)+"...";
                        title.setText(text);
                        Log.d("","NewText:"+text);
                    }
    
                }
            });
    View Code

    获取行的内容和宽度

    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);
    }
  • 相关阅读:
    拉姆达表达式(lambda Expressions)
    Func,Action 的介绍
    VS2012 此模板尝试加载组件程序集”NuGet.VisualStudio.interop,Version=1.0.0.0 的解决
    444 英语口语
    Base algorithm
    Windows Search Service
    Windows Azure Storage
    HDU 3395 Special Fish
    CodeForces 235B Let's Play Osu!
    HDU 3435 A new Graph Game
  • 原文地址:https://www.cnblogs.com/zijianlu/p/4876826.html
Copyright © 2011-2022 走看看