ScrollView文字竖直滚动

这几天研究了下文字的竖直滚动,是用ScrollView实现的,按下“启动”按钮,开始滚动,按下停止“按钮”,停止滚动
首先是Activity,

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ScrollView;
import android.widget.TextView;

public class ScrollActivity extends Activity {
/** Called when the activity is first created. */
ScrollView myscroll;
TextView tv;
int ori = 0;
Button stopButton, startButton, kanButton;
boolean isFlag = true;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
myscroll = (ScrollView) findViewById(R.id.sv);
myscroll.setVerticalScrollBarEnabled(false); //禁用垂直滚动
myscroll.setHorizontalScrollBarEnabled(false); //禁用水平滚动




stopButton = (Button)findViewById(R.id.stopButton);
stopButton.setOnClickListener(new OnClickListener(){

public void onClick(View v) {
isFlag = false;
}});



startButton = (Button)findViewById(R.id.startButton);
startButton.setOnClickListener(new OnClickListener(){

public void onClick(View v) {
isFlag = true;
startScroll();

}});

kanButton = (Button)findViewById(R.id.kanButton);
kanButton.setOnClickListener(new OnClickListener(){

public void onClick(View v) {
int count = Thread.activeCount();
Thread[] ts = new Thread[count];
Thread.enumerate(ts);
for(Thread t : ts)
{
System.out.println(t.getName() + " ========= ");
}

}});
}

Handler h = new Handler() {

@Override
public void handleMessage(Message msg) {
doScrow();
}
};

//滚动
public void doScrow(){
int now = myscroll.getScrollY();
if(ori == now){
myscroll.scrollTo(now, 0);
ori = -1;

}
else {
myscroll.smoothScrollBy(10, 2);

ori = now;

}
}

//启动滚动线程
private void startScroll()
{
Runnable r = new TimerLoop();
final Thread loop = new Thread(r, "MyThread");
loop.start();
}

public class TimerLoop implements Runnable {
public void run() {

while(isFlag){
try {
Thread.currentThread().sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
h.sendEmptyMessage(0);
}
}

}

}

下面是xml配置

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >

<ScrollView
android:id="@+id/sv"
android:layout_width="500px"
android:layout_height="50dip" >



<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="钗头凤 陆游红酥手 黄藤酒 满城春色宫墙柳东风恶 欢情薄 一杯愁绪,几年离索错!错!错!
春如旧 人空瘦 泪痕红悒鲛绡透桃花落 闲池阁 山盟虽在 锦书难托莫! 莫! 莫!钗头凤 唐婉世情薄 人情
恶 雨送黄昏花易落晓风干 泪痕残 欲笺心事 独语斜阑难!难!难!人成各 今非昨 病魂常似秋千索
角声寒 夜阑珊 怕人寻问 咽泪装欢瞒! 瞒! 瞒!" />


</ScrollView>

<Button
android:id="@+id/stopButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="结束"
/>

<Button
android:id="@+id/startButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="启动"
/>

<Button
android:id="@+id/kanButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="查看活动线程"
/>
</LinearLayout>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值