`
gryphone
  • 浏览: 433711 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

文字垂直滚动

阅读更多

文字垂直滚动

 

[功能]

在以前的文章曾经写过 如何水平滚动 现在说一下垂直滚动

 

 

[原理]

1. 设置 ScrollView的控件高度 为定值

2. 如何滚动显示:ScrollView.smoothScrollBy()

3. 如何循环滚动显示 即 当滚到最下面后 会回到最上面继续滚动: 得到最下面的垂直位移 然后通过 ScrollView.scrollTo() 来返回最上面

4. 如何判断是否到达底部:通过 ScrollView.getScrollY() 得到本次的垂直位移 然后与上次该值做比较 如果相等 则已经到达底部 否则 继续往下滚动

 

 

[代码 步骤]

1. 现以陆游的诗歌为例 定义布局文件 main.xml 如下:

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

 

 

2. 得到ScrollView 变量 scroll

 

scroll = (ScrollView)findViewById(R.id.sv);

 

 

3. 开辟Thread TimerLoop 用来定时 并通知 Activity 的 ScrollView 滚动一定的位移

private Handler message = new Handler(){
    	public void handleMessage(Message msg) {
    		doScrow();
				
			}
	};
		
    public class TimerLoop implements Runnable {
		@Override
		public void run() {
			// TODO Auto-generated method stub
			
			while(true){
				loop(500);
				
				message.sendEmptyMessage(0);
			}
		}
    	
    }
    
//因为sleep()似乎不好用 所以采用这种方法计时
    public void loop(long i){
    	long j = i;
    	while(j>0){
    		
    		j = j-1;
		}

    }

 

启动之

public boolean onKeyDown(int keyCode, KeyEvent msg){
    	Thread loop = new Thread(new TimerLoop());
    	loop.start();
    	
    	return super.onKeyDown(keyCode, msg);
	}

  

4. 根据值比较结果 来决定是 滚动 还是 返回最上面

public void doScrow(){
    	int now = scroll.getScrollY();
    	
    	if(ori == now){
    		scroll.scrollTo(now, 0);
    		ori = -1;
    		
    	}
    	else {
    		scroll.smoothScrollBy(10, 10);
    		
    		ori = now;
    		
    	}
    }

 

 

 

emulator 运行截图 (注意2次的字符内容的差异)

1.

 

2.

 

 

done!

分享到:
评论
8 楼 lenomon 2012-04-07  
这里有个关于垂直滚动的方法汇总:android垂直自动滚动
7 楼 lenomon 2012-03-11  
看看这个,或许适合你要求 android自定义View-垂直滚动的TextView
6 楼 Cremdayz 2011-11-30  
[/b][b][/b][b][/b][b][/b][b][/b][b][/b][b][/i][i][/i][i][/i][i][/u][u][/u][u][u][/u]
引用
引用
引用
引用
引用

    [*]

    [*]

    [*]

    [*]
[/url][url][/url][url]
5 楼 io_in_stream 2011-10-11  
3Q
4 楼 mitechen 2010-09-17  
似乎不能自动滚动啊.只能拖动...
3 楼 gryphone 2010-07-09  
kaixuan_166 写道
首先感谢楼主。
楼主的说明有问题:
1、如何判断是否到达底部:通过 ScrollView.getScrollY()…………
View.getScrollY() Return the scrolled top position of this view。
所以楼主其实是在比较顶部位置。
2、scroll.smoothScrollBy(10, 10)
为什么要在x方向上移动10呢,没必要吧。



一一回复:

1. 我这么做的原因是: 每次下拉后 getScrollY() 返回值 都不同 而当其到达最下方时候 其值保持不变 所以 我借助于此 判断是否已经到达最下方

2. 哪里?
2 楼 kaixuan_166 2010-07-09  
首先感谢楼主。
楼主的说明有问题:
1、如何判断是否到达底部:通过 ScrollView.getScrollY()…………
View.getScrollY() Return the scrolled top position of this view。
所以楼主其实是在比较顶部位置。
2、scroll.smoothScrollBy(10, 10)
为什么要在x方向上移动10呢,没必要吧。
1 楼 gaogaf 2010-06-22  
又被这两首诗打动一次

相关推荐

    android实现文字垂直滚动

    这个"android实现文字垂直滚动"的demo就是一个很好的实践案例,它利用了ScrollView和TextView两个核心组件来达到这一目的。下面我们将深入探讨这两个组件以及如何结合它们来实现文字的垂直滚动。 首先,ScrollView...

    易语言文字垂直滚动广告

    易语言文字垂直滚动广告是一种利用易语言编程实现的广告展示技术,主要特点是文字在屏幕上以垂直方向滚动播放,为用户提供动态的视觉效果。这种技术在软件界面设计、信息展示等领域有广泛应用,尤其适用于有限的屏幕...

    易语言文字垂直滚动广告源码

    易语言文字垂直滚动广告源码是一种使用易语言编程实现的广告展示方式,它通过在屏幕上以垂直方向滚动显示文字信息,吸引用户的注意力。易语言是中国自主研发的一种编程语言,旨在降低编程难度,让更多人能够参与到...

    仿暴风影音文字垂直滚动广告

    在IT行业中,创建一个仿暴风影音的文字垂直滚动广告是一种常见的网页或者软件界面设计技术,主要用于吸引用户的注意力并传递重要信息。这种广告形式借鉴了暴风影音播放器中的滚动字幕效果,使得文字信息能够动态地从...

    文字垂直滚动例程 易语言

    文字垂直滚动例程!可以自己改成带连接! 哈哈 将就用吧! 呵呵 !

    易语言源码易语言文字垂直滚动广告源码.rar

    易语言源码易语言文字垂直滚动广告源码.rar 易语言源码易语言文字垂直滚动广告源码.rar 易语言源码易语言文字垂直滚动广告源码.rar 易语言源码易语言文字垂直滚动广告源码.rar 易语言源码易语言文字垂直滚动广告...

    Android实现文字垂直滚动、纵向走马灯效果的实现方式汇总

    Android 实现文字垂直滚动、纵向走马灯效果的实现方式汇总 Android 实现文字垂直滚动、纵向走马灯效果是 Android-applications 中常见的效果,本文将为大家分享三种实现这种效果的方式,并对相关属性和注意事项进行...

    仿淘宝首页的垂直滚动文字

    【标题】"仿淘宝首页的垂直滚动文字"指的是在Android应用开发中,通过编程实现一个类似于淘宝首页那种文字信息垂直滚动的效果。这种效果通常用于展示动态更新的促销信息或者热门商品,能吸引用户的注意力,提高信息...

    VB 窗口文字垂直滚动含控件源码.rar

    VB在窗口中实现文字滚动,上下方向的垂直文字滚动,在Form1中可自定义滚动的文字内容,由下向上滚动,速度可调,文字颜色可调,在scroltext中实现的文字滚动。为方便实现文字滚动效果,定义了一个VB控件供使用,你...

    文字垂直滚动之javascript代码

    在大型的网站新闻公告和友情链接等领域经常有这种文字或图片垂直滚动的效果,下面就介绍一下文字垂直滚动的javascript代码。 javascript代码如下: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset...

    VB文字垂直滚动,很平滑那种

    标题“VB文字垂直滚动,很平滑那种”和描述中提到的内容主要涉及到使用Visual Basic (VB)编程语言实现的一种文字滚动效果,这种效果通常在显示动态信息或制作类似电影字幕的效果时会用到。VB源码是实现这一功能的...

    易语言文字垂直滚动广告源码-易语言

    易语言文字垂直滚动广告源码是一款使用易语言编写的应用程序,它主要展示了如何在软件界面上实现文字的垂直滚动效果,常用于制作各种广告展示或信息提示模块。易语言是一种以中文编程为特色的编程环境,旨在降低编程...

    js实现文字垂直滚动和鼠标悬停效果

    接下来,在CSS部分,定义了列表和列表项的基本样式,以及如何将文字垂直居中。通过设置`overflow:hidden`,确保当列表项中的文字内容超过`.recommend-info`容器高度时,超出的内容不会显示出来。 再来看JavaScript...

    Android TextView实现垂直滚动效果的方法

    在Android开发中,当需要在一个TextView中展示大量文本,而屏幕空间有限时,可以使用TextView的垂直滚动功能来实现文本的连续显示。本篇文章将详细讲解如何在Android中实现TextView的垂直滚动效果。 首先,要开启...

    VB中文文字垂直滚动特效源程序

    内容索引:VB源码,字符处理,文字滚动 VB中文文字垂直滚动特效源程序,就像电影序幕一样,文字由下而上匀速向上滚动,当然这个方向是由你决定,在源程序时可以修改这个方向参数,这个小程序可以广泛应用到你的VB程序...

    文字列表无缝向上滚动JavaScript代码

    文字列表无缝向上滚动JavaScript代码,原来的文件上传错了,下错的朋友可以下这个!

Global site tag (gtag.js) - Google Analytics