这几天研究了下文字的竖直滚动,是用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>
分享到:
相关推荐
"ios纵向滚动跑马灯字幕"这个标题所指的就是一个iOS应用中的功能模块,它允许文字信息在竖直方向上循环滚动,为用户提供动态的视觉效果。这种效果在很多移动应用中都可以看到,尤其是一些新闻客户端或者公告展示界面...
本篇将详细介绍如何在Android中实现文字竖直排版,并探讨相关技术点。 首先,Android的默认TextView控件并不支持文字竖直显示,所以我们需要自定义一个View来实现这一功能。"TextViewVertical"很可能是一个自定义的...
在Android开发中,文本垂直滚动,也常被称为垂直跑马灯效果,是一种常见的UI动态展示方式,尤其适用于显示有限空间内的大量文字信息。这个效果可以让文本在竖直方向上不断滚动,给人一种信息持续流动的感觉。在给定...
但在这个特定的案例中,我们不仅需要垂直滚动,还需要实现水平滚动,这就需要用到水平ScrollView或者HorizontalScrollView。 HorizontalScrollView是ScrollView的一个子类,专门用于实现水平方向上的滚动。开发者...
在Android开发中,文本垂直滚动是一个常见的需求,尤其在显示大量文字内容时。"text垂直滚动"这个主题主要涉及如何在Android应用中实现文本视图(TextView)的自动滚动功能,以便用户可以浏览超出屏幕范围的文本内容...
- `android:scrollbars` 设置了滚动条的类型,这里是竖直滚动条(`vertical`)。 然后,TextView的属性如下: - `android:layout_width` 为 `fill_parent`,表示TextView的宽度填充父视图的宽度。 - `android:...
ScrollView是Android中用于实现滚动功能的布局。当内容超出屏幕大小时,用户可以滑动查看所有内容。在本例中,ScrollView被用作第二层布局,包裹了上半部分的内容。`android:layout_weight`属性用于分配空间,这里...
1. 使用两个ScrollView:分别用于存放图片和文字描述,它们在竖直方向上排列。ScrollView是一个可以滚动的布局容器,能够容纳一个或多个视图,并支持内容超出屏幕大小时的滚动操作。 2. 自定义ViewGroup:为了实现...