android中TextView中如何设置水平滚动效果

本文介绍了一种在Android应用中实现走马灯效果的方法。通过设置TextView的属性,包括焦点、文本显示区域及滚动效果等,使得文本能在限定区域内循环滚动显示。

笔者在学习android的过程中曾遇到过一个比较头疼的问题——如何让文本实现走 马灯的效果,在起初我和大家一样想在网上找到一点资料,可是当我在茫茫网际中搜寻了几个小时之后发现的结果却是非常恼火的,提问的一大堆却没有回答的,于 是我开始自己的专研道路,笔者是一个android的菜鸟级人物,而且是非常菜的那种。在对android自带的例子的学习中我渐渐明白了如何实现走马灯 效果了。以下是我自己的一段代码,如有不正确之处请多多指正。

package irdc.ScrollingText;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class ScrollingText extends Activity
{
public TextView t1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
t1= (TextView) findViewById(R.id.t1);
t1.setText("哈哈我的跑马灯程序接下来是歌词呵呵:沉鱼落雁,闭月羞花,美的无处藏,人在身旁,如沐春光");
t1.setTextSize(30);
t1.setHorizontallyScrolling(true);
t1.setFocusable(true);
}
}

在这段程序中我设置了t1的焦点为真(意思为焦点在t1上),同事我设置了t1的文本显示能超过其显示区域(t1.setHorizontallyScrolling(true ) 设置的这行的目的是为了不让程序自动给文本折行,使之为单行),当然这些属性你都可以在XML文件中定义。接下来我们看看main.xml文件。

  1. <? xml version = "1.0" encoding = "utf-8" ?>
  2. < AbsoluteLayout
  3. android:id = "@+id/widget35"
  4. android:layout_width = "fill_parent"
  5. android:layout_height = "fill_parent"
  6. android:background = "@drawable/black"
  7. xmlns:android = "http://schemas.android.com/apk/res/android"
  8. >
  9. < TextView
  10. android:id = "@+id/t1"
  11. android:layout_width = "100px" //此处为文本显示区域的宽度此值必须比你的文本宽度要小否则是没有效果的
  12. android:layout_height = "wrap_content"
  13. android:text = "@string/str_id"
  14. android:textColor = "@drawable/green"
  15. android:layout_x = "61px"
  16. android:layout_y = "69px"
  17. android:scrollX = "2px"
  18. android:singleLine = "true"
  19. android:ellipsize = "marquee"
  20. android:marqueeRepeatLimit = "marquee_forever"
  21. >
  22. </ TextView >
  23. < ViewStub android:layout_y = "221dip" android:layout_;wrap_content" android:layout_x = "103dip" android:id = "@+id/ViewStub01" android:layout_height = "wrap_content" > </ ViewStub >
  24. </ AbsoluteLayout >
  25. 大家注意到在TextView中我添加了三行蓝色的字段,其中singleLine表示TextView中文本为单行文本如果你在你的程序中设置了setHorizontallyScrolling(true )在这你可以不写了,接下来就是我们的关键之处了ellipsize="marquee" 此语句表示我们将TextView设置为了一个走马灯,marqueeRepeatLimit="marquee_forever" 表示走马灯的滚动效果重复的次数,你可以填一个自然数。
    好了接下了编译试试 转载地址:

http://www.lupaworld.com/home/space-345712-do-blog-id-138560.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值