在Android TextView中有个内容过长加省略号的属性,即ellipsize,用法如下:
在xml中:
android:ellipsize="end" 省略号在结尾
android:ellipsize="start" 省略号在开头
android:ellipsize="middle"省略号在中间
android:ellipsize="marquee" 跑马灯
最好加一个TextView显示行数的约束,例如:
android:singleline="true"或者android:lines="2"
在java文件中:
tv.setEllipsize(TextUtils.TruncateAt.valueOf("END"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("START"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("MIDDLE"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));
最好加一个TextView显示行数的约束,例如:
tv.setSingleLine(true);
不仅对于textview有此属性,对于editext也有,不过它不支持marquee。
文字展开和收缩
public class DemoActivity extends BaseActivity {
<wbr><wbr>@Override
<wbr>protected void onCreate(Bundle savedInstanceState) {
<wbr><wbr>super.onCreate(savedInstanceState);
<wbr><wbr>setContentView(R.layout.main);</wbr></wbr></wbr></wbr></wbr></wbr></wbr>
// 在xml文件中设置了android:singleline="true"
<wbr><wbr>final TextView tv = (TextView)findViewById(R.id.task_2_title);
<wbr><wbr>//tv.setMovementMethod(ScrollingMovementMethod.getInstance());
<wbr><wbr>tv.setOnClickListener(new OnClickListener() {
<wbr><wbr><wbr>Boolean flag = true;
<wbr><wbr><wbr>@Override
<wbr><wbr><wbr>public void onClick(View v) {
<wbr><wbr><wbr><wbr>Log.i("tv.getLineCount()",tv.getHeight()+"");
<wbr><wbr><wbr><wbr>if(flag){
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>flag = false;
<wbr><wbr><wbr><wbr><span style="word-wrap:normal; word-break:normal"><wbr>tv.setEllipsize(null); // 展开
</wbr></span><wbr><wbr><wbr><wbr><wbr>//tv.setSingleLine(flag);
<wbr><wbr><wbr><wbr>}else{
<wbr><wbr><wbr><wbr><wbr>flag = true;
<wbr><wbr><wbr><wbr><span style="word-wrap:normal; word-break:normal"><wbr>tv.setEllipsize(TextUtils.TruncateAt.END); // 收缩
</wbr></span><wbr><wbr><wbr><wbr><wbr>//tv.setSingleLine(flag);
<wbr><wbr><wbr><wbr>}
<wbr><wbr><wbr>}
<wbr><wbr>});
<wbr>}
}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
其实,只是把样式清空而已。就能完全展开了。
有人可能要说,万一我想初始几行呢?放心,一样可以。上代码:
在xml文件中设置了如下属性:
android:lines="4"<wbr style="font-size:18px; font-family:Arial,Helvetica,sans-serif"><span style="font-size:18px; font-family:Arial,Helvetica,sans-serif"></span><wbr style="font-size:18px; font-family:Arial,Helvetica,sans-serif"><span style="font-size:18px; font-family:Arial,Helvetica,sans-serif"></span><wbr style="font-size:18px; font-family:Arial,Helvetica,sans-serif"><span style="font-size:18px; font-family:Arial,Helvetica,sans-serif"></span><wbr style="font-size:18px; font-family:Arial,Helvetica,sans-serif"><span style="font-size:18px; font-family:Arial,Helvetica,sans-serif"></span><wbr style="font-size:18px; font-family:Arial,Helvetica,sans-serif"><span style="font-size:18px; font-family:Arial,Helvetica,sans-serif; word-wrap:normal; word-break:normal"><wbr>//我初始化的4行</wbr></span><span style="font-size:18px; font-family:Arial,Helvetica,sans-serif"></span><span style="font-family:Arial,Helvetica,sans-serif; font-size:18px"></span></wbr></wbr></wbr></wbr></wbr>
Activity那边代码一样,只改一点
<wbr>if(flag){
<wbr><wbr><wbr><wbr><wbr><wbr><wbr>flag = false;
<span style="word-wrap:normal; word-break:normal"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>tv.setEllipsize(null); // 展开
</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><span style="word-wrap:normal; word-break:normal"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>tv.setSingleLine(flag);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr>}else{
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>flag = true;
<span style="word-wrap:normal; word-break:normal"><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>tv.setEllipsize(TextUtils.TruncateAt.END); // 收缩
</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></span><wbr><wbr><wbr>}
<wbr>设置<span style="word-wrap:normal; word-break:normal">setSingleLine的目的是为了取消</span><span style="word-wrap:normal; word-break:normal">lines==“4”这个固定值。</span></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
分享到:
相关推荐
主要介绍了Android实现在TextView文字过长时省略部分或滚动显示的方法,结合实例形式分析了Android中TextView控件文字显示及滚动效果相关操作技巧,需要的朋友可以参考下
视频与票的图标跟在标题后面显示,当标题过长时icon显示到省略号…后(textview省略号显示,图标自动靠后)。 二、问题解决 TextView可以通过 android:ellipsize=end android:singleLine=true实现单行省略, 但是...
有时候在ListView中显示Textview时由于长度过长而导致text会隔行显示,UI上看起来就比较的不友好。 官方提供了相关的实现单行显示的方法。 只需要下边的设置: textview.setSingleLine(); textview.setEllipsiz...
Android动态点点省略号效果的等待控件,可直接运行查看效果
android TextView解决自动换行问题,设置行数后超过用省略号
Textview设置超出自己所设置的个数长度时,多余的则显示省略号
NULL 博文链接:https://obacow.iteye.com/blog/1679277
本文实例讲述了Android设置TextView显示指定个数字符,超过部分显示…(省略号)的方法。分享给大家供大家参考,具体如下: 一、问题: 今天在公司遇到一个需求;TextView设置最多显示8个字符,超过部分显示…(省略号)...
本文介绍了Android TextView属性ellipsize多行失效的解决思路,分享给大家,具体如下: 多余文字显示省略号的常规做法 ... * 如果字符串太长显示不下,则用省略号代替 * 省略号的位置在第一行末尾
本文实例讲述了Android开发中TextView文本过长滚动显示实现方法。分享给大家供大家参考,具体如下: 项目中在使用TextView时,总会有因要显示的内容过多而需要我们进行处理的问题。我们第一时间想到的是TextView的...
本文实例讲述了Android开发自定义TextView省略号样式的方法。分享给大家供大家参考,具体如下: 在布局xml中设置textView的字段 android:maxLines=2 android:ellipsize=end字段之后,textview会自动压缩行数,并且...
实现如下: 代码如下:<TextView android:layout_width=”fill_parent” android:layout_height=”wrap_content” android:id=”@+id/hello” android:ellipsize=... 您可能感兴趣的文章:Android设置TextView显示指定个
Textview默认展示固定行数,展示不全使用省略号代替;点击更多时,加载全部文本内容。
大家都知道,如果要让TextView只显示一行,多出部分用省略号代替的话非常容易,只需要为xml文件中的TextView控件添加android:singleLine=true即可,那么如果我想让它显示多行的时候应该怎么做呢? 废话不多说,先看...
android:ellipsize设置当文字过长时 该控件该如何显示 有如下值设置:”start”省略号显示在开头;”end”省略号显示在结尾;”middle”省略号显示在中间;;”marquee” 以跑马灯的方式显示 动画横向移动 好像跑马...
实现一个能够适应多行长文本的TextView