textview多行设置ellipsize="end"并不显示省略号。这是android4.0以下系统的bug,google发现有个家伙写了个开源控件http://android-textview-multiline-ellipse.googlecode.com/ 号称解决该问题。但实际测试还是存在问题,只好自己另寻找解决方案。下面的代码替换掉该控件的resetText函数,几乎可实现多行显示省略号 。
private void resetText() { String workingText = fullText; boolean ellipsized = false; int maxLines = this.maxLines > 0 ? this.maxLines : 1; if (maxLines <= getLineCount()) { Paint paint = getPaint(); float mw = (getMeasuredWidth() - getPaddingLeft() - getPaddingRight()) * maxLines; if (paint.measureText(workingText) > mw) { int ei = (int) ((mw - paint.measureText("...")) / paint .getTextSize()) - 1; if (ei < workingText.length()) { workingText = workingText.substring(0, ei - 1) + "..."; } } ellipsized = true; } if (!workingText.equals(getText())) { programmaticChange = true; try { setText(workingText); } finally { programmaticChange = false; } } isStale = false; if (ellipsized != isEllipsized) { isEllipsized = ellipsized; for (EllipsizeListener listener : ellipsizeListeners) { listener.ellipsizeStateChanged(ellipsized); } } }
实际这个解决方法还是有点小问题。什么问题请留意下文分解^_^。
相关推荐
NULL 博文链接:https://obacow.iteye.com/blog/1679277
android:ellipsize=”end” //省略号显示在末尾 android:ellipsize=”middle” //省略号显示在中间 但是设置android:maxLines=”2″ 以后,ellipsize的值end有效,middle无效,本方法解决middle无效的问题 /** * ...
TextView限制最大行数,多出部分显示略号,ellipsize="end"失效问题解决办法
视频与票的图标跟在标题后面显示,当标题过长时icon显示到省略号…后(textview省略号显示,图标自动靠后)。 二、问题解决 TextView可以通过 android:ellipsize=end android:singleLine=true实现单行省略, 但是...
2.android:ellipsize=”end”——省略号显示在结尾 3.android:ellipsize=”middle”—-省略号显示在中间 4.android:ellipsize=”marquee”–以跑马灯的方式显示(动画横向移动) 文字左右滚动三个属性: android:...
在布局xml中设置textView的字段 android:maxLines=2 android:ellipsize=end字段之后,textview会自动压缩行数,并且对压缩掉的部分用…显示。如果不想用…而想用。。。或者… …就需要自定义这个省略号的样式,不...
有时候在ListView中显示Textview时由于长度过长而导致text会隔行显示,UI上看起来就比较的不友好。...中间的singleline设置为true,就可以实现单行,且省略号在最后,而ellipsize则是控制省略号的位置,分别有
本文实例讲述了Android设置TextView显示指定个数字符,超过部分显示…(省略号)的方法。分享给大家供大家参考,具体如下: 一、问题: 今天在公司遇到一个需求;TextView设置最多显示8个字符,超过部分显示…(省略号)...
我们第一时间想到的是TextView的android:ellipsize属性,比如 android:ellipsize=end,效果是在文字的尾部打三个小点。 但是这个属性要配合android:singLine=”true”使用。通常来说,要实现尾端三个点的省略号形式...
实现如下: 代码如下:<TextView android:layout_width=”fill_parent” android:layout_height=”wrap_content” android:id=”@+id/hello” android:ellipsize=”end” android:singleLine=”true”> 您可能感...
使用TextView的时候,需要长度过长自动显示省略号,android里有原生的支持,定义如下: 代码如下: <TextView android:ellipsize=”end” android:singleLine=”true”/> 一看确实可以使用,但仔细观察,发现在省略号...
android:ellipsize设置当文字过长时 该控件该如何显示 有如下值设置:”start”省略号显示在开头;”end”省略号显示在结尾;”middle”省略号显示在中间;;”marquee” 以跑马灯的方式显示 动画横向移动 好像跑马...
”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动) android:freezesText设置保存文本的内容以及光标的位置。参见:这里。 android:gravity设置文本...
安卓主要依靠xml文件来布局,否则textView多的时候布局起来会比较混乱 3.android:singleLine属性为true表示文本在一行显示 android:ellipsize属性:设置当文本过长时该如何显示(显示省略号)start、end、middle...