您的位置:首页 > 移动开发 > Android开发

android TextView 如何实现消息滚动

2011-11-01 18:05 639 查看
第一步: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();

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: