android TextView 如何實現消息滾動

第一步:layout文件,主要是紅色部分

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:weightSum="1">


    <ScrollView android:layout_width="fill_parent"
        android:scrollbars="vertical"
        android:fadingEdge="vertical"
        android:id="@+id/scrollView"
        android:layout_marginTop="10px"
        android:layout_marginLeft="10px"
        android:layout_marginRight="10px"
        android:layout_marginBottom="10px"
        android:layout_height="20dp">  

    
        <LinearLayout android:orientation="vertical" android:layout_width="fill_parent"    android:layout_height="fill_parent">      


            <TextView android:text="第一行"  android:textColor="#1A1A1A" android:background="#C1CDCD"  android:textSize="13dp" android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="20dp"></TextView>


            <TextView android:text="第二行"  android:textColor="#1A1A1A" android:background="#C1CDCD"  android:textSize="13dp" android:id="@+id/textView2" android:layout_width="fill_parent" android:layout_height="20dp"></TextView>


            <TextView android:text="第三行"  android:textColor="#1A1A1A" android:background="#C1CDCD"  android:textSize="13dp" android:id="@+id/textView3" android:layout_width="fill_parent" android:layout_height="20dp"></TextView>


            <TextView android:text="第四行"  android:textColor="#1A1A1A" android:background="#C1CDCD"  android:textSize="13dp" android:id="@+id/textView4" android:layout_width="fill_parent" android:layout_height="20dp"></TextView>       


        </LinearLayout>   


    </ScrollView>

</LinearLayout>

 

 

第二部:Java文件

package com.exam;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.widget.ScrollView;

public class ExampleActivity extends Activity {
    /** Called when the activity is first created. */

    private ScrollView scrollview;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        scrollview = (ScrollView) findViewById(R.id.scrollView);
        scrollview.setVerticalScrollBarEnabled(false);
        LooperThread mClockThread = new LooperThread();
        mClockThread.start();


    }

    // 用於線程間通信的Handler
    class TestHandler extends Handler {
        public TestHandler(Looper looper) {
            super(looper);
        }

        @Override
        public void handleMessage(Message msg) {

            Bundle bundle = msg.getData();
            int loop = bundle.getInt("loop");
            System.out.println("loop:" + loop);
            if (loop == 4)
                scrollview.scrollTo(0, 0);// 改變滾動條的位置
            else
                scrollview.scrollTo(loop * 29, loop * 29 + 30 + loop * 1);// 改變滾動條的位置
            super.handleMessage(msg);
        }
    }
     

   //多線程控制循環

   class LooperThread extends Thread {

        public void run() {
            super.run();
            try {
                int loop = 0;
                while (true) {
                    Thread.sleep(3000);
                    Message msg = new Message();
                    Bundle bundle = new Bundle();
                    bundle.putInt("loop", loop);
                    msg.setData(bundle);
                    new TestHandler(Looper.getMainLooper()).sendMessage(msg);
                    loop++;
                    if (loop == 5) {
                        loop = 0;
                    }
                }

            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }
    }

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章