在一个Activity中拥有一个TextView,请问是否可以让这个TextView中的文字由下到上自动滚动显示?请教如何实现这一功能

解决方案 »

  1.   

    垂直滚动:http://griffinshi.javaeye.com/blog/599015水平滚动:http://griffinshi.javaeye.com/blog/585791
      

  2.   

    文字左右滚动三个属性:
    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"
        />   1. <TextView  
       2.             android:id="@+id/app_shortcontent"  
       3.             android:layout_width="wrap_content"  
       4.             android:layout_height="wrap_content"  
       5.             android:singleLine="true"  
       6.             android:textColor="#FFFFFFFF"  
       7.             android:scrollHorizontally="true"  
       8.             android:focusable="true"  
       9.             android:ellipsize="marquee"  
      10.             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);
      

  3.   


    呵呵~也从WINCE 转行啦~嘿嘿