ScrollView实现TextView一行一行的滚动效果

在项目中因为是混合布局,TextView的宽度比较窄而内容又很多,这样用跑马灯似乎就不很合适了。。。于是,想到要一行一行的滚动TextView,这个当然要用ScrollView了,代码如下:

 <ScrollView
     android:layout_width="fill_parent"
  android:layout_height="100dip"
  android:id="@+id/scrollView"
     >
     
  <TextView 
      android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:id="@+id/textView"
      android:text="@string/hello"
      />
 </ScrollView>

可是,我的ScrollView高度比较小,手动滑动的话似乎不方便,那么就不手动滑动让它自己滑动吧。。。

如下:

xml中:

<ScrollView
     android:layout_width="fill_parent"
  android:layout_height="100dip"
  android:id="@+id/scrollView"
     >
     
  <TextView 
      android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:id="@+id/textView"
      android:text="@string/hello"
      />
 </ScrollView>

java代码中:

public class TestScrollViewActivity extends Activity {
 TextView textView ;
 ScrollView scrollView;
 Handler mHandler ;
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mHandler = new Handler();
        textView = (TextView) this.findViewById(R.id.textView);
        scrollView = (ScrollView) this.findViewById(R.id.scrollView);
       
        Thread t = new Thread(new Runnable(){

   public void run() {
    int flag = 0;
    try {
     Thread.sleep(1000);
     while (flag < 3){
      if(scrollView.getScrollY() < (textView.getHeight() - scrollView.getHeight())){
       System.out.println("");
       System.out.println("scrollView.getScrollY() ====== " + scrollView.getScrollY());
       mHandler.post(new Runnable(){

        public void run() {
         scrollView.smoothScrollBy(0, textView.getLineHeight()/10);
        }
       });
       Thread.sleep(100);
      }else{
       mHandler.post(new Runnable(){

        public void run() {
         scrollView.smoothScrollTo(0, 0);
         System.out.println("--- else ---------");
        }
       });
       Thread.sleep(1000);
       flag ++ ;
      }
     }
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
         
        });
        t.start();
      
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值