TextView中有个ellipsize属性,作用是当文字过长时,该控件该如何显示,解释如下:
1.android:ellipsize=”start”—–省略号显示在开头
2.android:ellipsize=”end”——省略号显示在结尾
3.android:ellipsize=”middle”—-省略号显示在中间
4.android:ellipsize=”marquee”–以跑马灯的方式显示(动画横向移动)
文字左右滚动三个属性:
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
Android中我们为了实现文本的滚动可以在ScrollView中嵌入一个TextView,其实TextView自己也可以实现多行滚动的,毕竟 ScrollView必须只能有一个直接的子类布局。只要在layout中简单设置几个属性就可以轻松实现。
<TextView
android:id="@+id/tvCWJ"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical" <!--垂直滚动条 -->
android:singleLine="false" <!--实现多行 -->
android:maxLines="15" <!--最多不超过15行 -->
android:textColor="#FF0000"
/>
< TextView
android:id = "@+id/app_shortcontent"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:singleLine = "true"
android:textColor = "#FFFFFFFF"
android:scrollHorizontally = "true"
android:focusable = "true"
android:ellipsize = "marquee"
android:marqueeRepeatLimit = "marquee_forever" />
当然我们为了让TextView动起来,还需要用到TextView的setMovementMethod方法设置一个滚动实例,代码如下
TextView tv = (TextView)findViewById(R.id.tvCWJ);
tv.setMovementMethod(ScrollingMovementMethod.getInstance()); // Android开发网提示相关的可以查看SDK中android.text.method分支了解更多
附:
顺便讲下 TextView 自动滚动的实现方法,下面介绍两种方法:
一、在代码中实现:
textView .setEllipsize(TextUtils.TruncateAt.MARQUEE);
textView .setSingleLine(true);
textView .setMarqueeRepeatLimit(6);
二、在XML中实现:
<TextView android:id="@+id/TextView01" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:singleLine="true"
android:text="dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
android:marqueeRepeatLimit="marquee_forever" android:ellipsize="marquee"
android:scrollHorizontally="true" android:width="150dip"></TextView>
一切OK,当 textView 获取焦点后,就会自动滚动。
补充 ==============================
不管是手动还是自动 你要实现滚动就得加scrollview
到时候可以通过handle来调用scrollview的scrollTo方法实现滚动
Handler mHandler = new Handler();
private Runnable mScrollToBottom = new Runnable() {
public void run() {
mScrollView.scrollTo(0, offset);
}
};
onTouch里面
mHandler.post(mScrollToBottom);
补充 ====================
补充:
1,把 textview的 Ellipsize 设置成 marquee(上面有说)
2,把 Deprecated的 Single line 设置成 true
3,设置textview的Marquee repeat limit 属性(滚动回数,默认是无数回)
贴个代码吧.
textview.setEllipsize(TextUtils.TruncateAt.MARQUEE);
textview.setSingleLine(true);
textview.setMarqueeRepeatLimit(6);
分享到:
相关推荐
TextView限制最大行数,多出部分显示略号,ellipsize="end"失效问题解决办法
android TextView解决自动换行问题,设置行数后超过用省略号
两个功能 解决中英文结合导致提前换行bug。 textview动态变化行(显示更多),点击更多弹出全部textview再点击隐藏。
TextView点击显示更多
android开发中的textview可以自动换行,但是对于显示纯英文文字来说很好用,如果夹杂了中文字符后,全角字符和半角字符混在一块儿,就会出现文字排版参差不齐,超级难看,这就需要重写textview来实现我们需要的显示...
自定义TextView,解决布局乱的问题
android TextView android TextView
解决TextView自动排版不对齐的问题,写了一个工具类,直接new 到自己的项目里,就能就解决问题, 首先呢,我帮把这个放到你的项目里面,然后new出它,然后点出autoText(里面放你的TextView); 就OK了 希望能帮助...
运行工具:eclipse+ADK 自定义TextView解决排版混乱问题, 本示例并非本人所写,从网上找的,不能在eclipse上直接运行,我重新组织了下代码。非常不错的案例,当引用的时候也有些小缺陷,完善一下,挺实用的。
解决 TextView 中文、英文、数字、符号 排版问题,注释很清晰,5分绝对值了,
关于TextView多行排版不整齐的方法
用TextView显示的时候,会出现一个问题就是显示的文字中有括号、数字、或者英文的话他会立刻就换行,因为括号、数字等是半角,而汉字是全角,所以我们需要把半角转换为全角,使它们与汉字同占两个字节,现在已经解决...
TextView文本设置多个颜色 TextView文本设置多个颜色
主要介绍了Android TextView两端对齐解决办法的相关资料,需要的朋友可以参考下
MTextView,解决Android TextView提前换行的问题
android之为TextView打上多标签
解决Android中原生TextView显示中英文特殊字符等末尾参差不齐问题
TextView超过最大行数显示更多,没有则全部显示,TextView的折叠功能实现,比较笨的方法,呵呵,有好的方法谢谢分享
自定义TextView解决超长文字显示的问题,更多信息见blog:http://blog.csdn.net/baidu_nod/article/details/32322853
于是我决定自定义一个TextView来做这件事,勉强解决了问题,但是代价是失去了很多TextView自身拥有的特性,而且TextView自身做了很多缓存和优化的工作,Google强烈不建议我们去修改这个控件。 我们先来看看实现效果...