文档章节

Android 循环上下滚动

 不爱吃鱼的喵
发布于 2016/07/26 15:06
字数 394
阅读 105
收藏 1

最近在做项目的时候遇到了一个上下滚动文字的需求,在网上找到了一个自定义的TextView,但是切换效果很图片,没有滚动的效果,考虑到html的marquee效果添加到TextView中,无奈没有效果,另外也浏览了js写的滚动,效果很好,但是应用起来很麻烦,毕竟是Android原生界面。最后,只能自己做一个了(注:此处是两句文字来回滚动)

  • 1.布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#fe0"
         >

        <TextView
            android:id="@+id/autoPlay"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="位移动画"
            android:padding="16dp"/>
         <TextView
            android:id="@+id/autoPlay1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="位移动画2"
            android:padding="16dp"/>
    </RelativeLayout>

</LinearLayout>

2.Activity中的代码

private TextView aView;
private TextView aView1;
final Handler handler = new Handler() {
		public void handleMessage(Message msg) { // handle message
			switch (msg.what) {
			case 1:
				// UI操作
                          //此处两个TextView不分先后,只要与else里的顺序不同即可
				if (curIndex == 1) {
					autoPlay(aView, aView1);
					curIndex++;
				} else {
					autoPlay(aView1, aView);
					curIndex--;
				}

				Message message = handler.obtainMessage(1);
				//此处延时应大于等于动画播放时间,否则会有卡顿现象
				// 发送message 
                                // 这样消息就能循环发送
                              handler.sendMessageDelayed(message, 3000); 																		}
			super.handleMessage(msg);
		}
	};


在onCreate方法里添加

aView = (TextView) findViewById(R.id.autoPlay);
aView1 = (TextView) findViewById(R.id.autoPlay1);
Message message = handler.obtainMessage(1);
handler.sendMessageDelayed(message, 1000); // 发送message

3.autoPlay方法

 public void autoPlay(TextView aView, TextView aView1) {
		TranslateAnimation inAnimation = new TranslateAnimation(0, 0, 100, 0);
		inAnimation.setDuration(2000);
		inAnimation.setFillAfter(true);
		TranslateAnimation outAnimation = new TranslateAnimation(0, 0, 0, -100);
		outAnimation.setDuration(2000);
		outAnimation.setFillAfter(true);
		aView1.clearAnimation();
		aView.clearAnimation();
		aView1.startAnimation(outAnimation);
		aView.startAnimation(inAnimation);
	}

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 43
码字总数 14022
作品 0
济南
程序员
私信 提问
Android两条并排RecyclerView实时联动滑动增强

Android两条并排RecyclerView实时联动滑动增强 在附录1中,我初步实现了两条垂直摆放的RecyclerView的实时联动滚动,但是附录文章1的实现存在一定问题,比如当用户的手指同时在屏幕的两条Rec...

zhangphil
04/24
0
0
前端系列——与众不同的移动端底部固定栏 fixed、absolute 兼容 iOS 和 Android 方案

相信我,我分享的和你在其他博客上看到的终极方案是如此的与众不同! 做过移动端开发的同学,对底部DOM定位出现的各种奇葩情况已经深恶痛绝了吧,底部DOM设置不同的position,在Android和ios...

大灰狼的小绵羊哥哥
09/13
0
0
Android手机开机动画的修改

工作原理 Android的系统登录动画有2种: 1:android自带的动画。 由前景和背景两张PNG图片组成,这两张图片存在于/system/framework /framework-res.apk文件当中,对应原文件位于/frameworks...

MK_ROM
2015/07/29
0
0
Android编程之仿iPhone滚轮控件

网上看到有人写了一个滚动组件,这个不错,大家可以看看 但是,我个人觉得这里有一处不是很好,大家可以试试:不循环的情况下,如果就是最后一个选项,你把它移到最上或者最下的位置,它回滚...

ChowJames
2012/09/05
0
0
Selector中的各种状态详解

更多文章请访问: http://user.qzone.qq.com/469241633/main#!app=2&via=QZ.HashRefresh&pos=1341222376 今天弄这个selector把脑壳弄得清痛,最终我的理解如下: 官方关于这个的介绍在:http:/...

程序袁_绪龙
2014/09/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux学习-1031(rsync同步工具 上)

10.28 rsync工具介绍 10.29/10.30 rsync常用选项 10.31 rsync通过ssh同步 一、 rsync工具介绍 rsync是一个同步工具,在日常的运维中常会用到。它可以本地同步,也实现可以远程两台机器同步。...

wxy丶
4分钟前
0
0
python实战一期:第一天

1. 为什么学习python 1.1 为什么要学Python? Python第一是个非常牛B的脚本语言,能满足绝大部分自动化运维的需求,又能做后端C/S架构,又能用WEB框架快速开发出高大上的Web界面,只有当你自...

laoba
6分钟前
1
0
Java并发编程学习三:线程同步的关键字以及理解

上篇文章中介绍了Java线程的带来的问题与内存模型中介绍了线程可能会引发的问题以及对应Java的内存模型,顺带介绍了Volatile和Sychronized关键字。今天对Java中涉及到的常见的关键类和关键字...

JerryLin123
13分钟前
0
0
我用代码来给你们分析一个赚钱的技巧

赚钱是个俗气的话题,但又是人人都绕不开的事情。我今天来“科学”地触碰下这个话题。 谈赚钱,就会谈到理财、投资,谈到炒股。有这样一个笑话: 问:如何成为百万富翁? 答:带一千万进入股...

crossin
13分钟前
0
0
spring MatchingBean应用

1、编写接口FactoryList import java.util.List;public interface FactoryList<E extends MatchingBean<K>, K> extends List<E> { E getBean(K factor); List<E> getBeanLi......

重城重楼
26分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部