`
lws0402
  • 浏览: 108540 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

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>
分享到:
评论

相关推荐

    ios纵向滚动跑马灯字幕

    "ios纵向滚动跑马灯字幕"这个标题所指的就是一个iOS应用中的功能模块,它允许文字信息在竖直方向上循环滚动,为用户提供动态的视觉效果。这种效果在很多移动应用中都可以看到,尤其是一些新闻客户端或者公告展示界面...

    竖直排版(android)

    本篇将详细介绍如何在Android中实现文字竖直排版,并探讨相关技术点。 首先,Android的默认TextView控件并不支持文字竖直显示,所以我们需要自定义一个View来实现这一功能。"TextViewVertical"很可能是一个自定义的...

    文本垂直滚动

    在Android开发中,文本垂直滚动,也常被称为垂直跑马灯效果,是一种常见的UI动态展示方式,尤其适用于显示有限空间内的大量文字信息。这个效果可以让文本在竖直方向上不断滚动,给人一种信息持续流动的感觉。在给定...

    水平竖直滑动的多个图表

    但在这个特定的案例中,我们不仅需要垂直滚动,还需要实现水平滚动,这就需要用到水平ScrollView或者HorizontalScrollView。 HorizontalScrollView是ScrollView的一个子类,专门用于实现水平方向上的滚动。开发者...

    text垂直滚动

    在Android开发中,文本垂直滚动是一个常见的需求,尤其在显示大量文字内容时。"text垂直滚动"这个主题主要涉及如何在Android应用中实现文本视图(TextView)的自动滚动功能,以便用户可以浏览超出屏幕范围的文本内容...

    Android开发:TextView加入滚动条示例

    - `android:scrollbars` 设置了滚动条的类型,这里是竖直滚动条(`vertical`)。 然后,TextView的属性如下: - `android:layout_width` 为 `fill_parent`,表示TextView的宽度填充父视图的宽度。 - `android:...

    Android中使用嵌套布局完成美食背后的故事案例的布局设计要领.pdf

    ScrollView是Android中用于实现滚动功能的布局。当内容超出屏幕大小时,用户可以滑动查看所有内容。在本例中,ScrollView被用作第二层布局,包裹了上半部分的内容。`android:layout_weight`属性用于分配空间,这里...

    Android 仿淘宝、京东商品详情页向上拖动查看图文详情控件DEMO详解

    1. 使用两个ScrollView:分别用于存放图片和文字描述,它们在竖直方向上排列。ScrollView是一个可以滚动的布局容器,能够容纳一个或多个视图,并支持内容超出屏幕大小时的滚动操作。 2. 自定义ViewGroup:为了实现...

Global site tag (gtag.js) - Google Analytics