我们知道,要使TextView单行显示,如果超出的话用“…”显示,只要设置

android:ellipsize="end"android:singleLine="true"

或者多行显示,超出的部分使用“…”显示,那么,设置如下

android:lines="2"android:ellipsize="end"

那么问题是,我们怎么知道TextView已经省略了内容呢?

        TextView textView = (TextView) findViewById(R.id.txt_course_introduce);        Layout l=textView.getLayout();        if(l!=null){            int lines =l.getLineCount();            LogUtils.d(TAG, "lines = " + lines);            if(lines>0){                if(l.getEllipsisCount(lines-1)>0){                    LogUtils.d(TAG, "Text is ellipsized");                }            }        }else {            LogUtils.d(TAG,"Layout is null");        }

通过textview获取Layout,然后根据Layout的一个方法getEllipsisCount(int),来判断是否已经省略,但Layout大多时候获取到的都是null,为什么呢?原因是,Layout要等TextView绘制完了才能够拿到Layout的对象。

final TextView textView = (TextView) findViewById(R.id.txt_training_introduce);        textView.post(new Runnable() {            @Override            public void run() {                Layout l = textView.getLayout();                if (l != null) {                    int lines = l.getLineCount();                    LogUtils.d(TAG, "lines = " + lines);                    if (lines > 0) {                        if (l.getEllipsisCount(lines - 1) > 0) {                            LogUtils.d(TAG, "Text is ellipsized");                        }                    }                } else {                    LogUtils.d(TAG, "Layout is null");                }            }        });

更多相关文章

  1. Android使用WebView来显示天气预报
  2. android ImageView 显示本地图片
  3. Android的Recyclerview的使用
  4. 【解疑答惑】—— android:maxLines="1"没满一行显示省略号,用and
  5. android 横竖屏判断
  6. Android(安卓)RecyclerView 设置显示滚动条属性后,滚动条不显示踩
  7. android xml控件属性
  8. Android(安卓)Edittext 显示光标 获取焦点 监听焦点
  9. Android(安卓)API中文文档EditText

随机推荐

  1. 第1章 android发展史
  2. Android音频开发(1):基础知识
  3. Android撬动IT市场的新支点
  4. Android有用代码片断(六)
  5. URI是什么,在Android中有什么作用?
  6. 移动互联网的新宠:Android之缤纷世界
  7. [置顶] 搬家、备份后启动Android(安卓)PA
  8. Day1.1-Android简介之发展史、操作系统、
  9. Android应用程序的类型
  10. 谷歌正式发布Android(安卓)2.2手机操作平