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();
}
}
}
}
<?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();
}
}
}
}
相关文章推荐
- Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行?
- Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行?
- android----TextView如何实现无限滚动显示
- Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行
- Android之如何用TextView实现滚动字幕的效果【跑马灯】
- Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行
- Android中TextView如何实现水平和垂直滚动
- android实现上下滚动的TextView
- Android TextView多行文本滚动实现与ScrollView的滚动条为隐藏的方法
- Android中TextView实现单行字体滚动效果
- android TextView 垂直自动滚动字幕实现
- 【Android自学笔记】android实现TextView垂直滚动显示
- Android 头部设置上下滚动的消息列表 TextView (TextSwitcher运用)
- Android之TextView实现文字过长时省略部分或者滚动显示
- android 如何让appwidget 里面设置TextView 滚动,android widget marquee text
- Android之TextView实现文字过长时省略部分或者滚动显示
- android实现TextView垂直或水平滚动
- Android之TextView实现文字过长时省略部分或者滚动显示
- Android 如何实现TextView的跑马灯效果,即轮播
- android开发游记:textview超过长度点击展开自动滚动(在一个TextView中实现,不增加布局复杂度)