文档章节

Android 循环上下滚动

 不爱吃鱼的喵
发布于 2016/07/26 15:06
字数 394
阅读 73
收藏 1
点赞 0
评论 0

最近在做项目的时候遇到了一个上下滚动文字的需求,在网上找到了一个自定义的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
博文 42
码字总数 14022
作品 0
济南
程序员
Android两条并排RecyclerView实时联动滑动增强

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

zhangphil ⋅ 04/24 ⋅ 0

关于Activity销毁,而绘制UI的子线程未销毁出现的问题

项目总结 --------------------------------------------------------------------------------------------------------- 有一个功能模块,需要播放音频,画一个简单的界面 一个例子: 我们...

听着music睡 ⋅ 2015/11/12 ⋅ 0

android蓝牙手柄、仿QQ看房、仿慕课网、数据库二维码框架等源码

Android精选源码 可自定义图片指示器并支持自定义Tab宽度的TabLayout源码(http://www.apkbus.com/thread-599243-1-1.html) android蓝牙控制手柄操作源码(http://www.apkbus.com/thread-59928...

逆鳞龙 ⋅ 05/15 ⋅ 0

Android程序测试(1)——新建一个简单的测试工程来测试已有的工程

因为程序测试方面是程序开发中非常重要的一方面,这里结合官方教程,来了解下Android程序是怎样进行测试的。 Android开发环境集成了一个容易使用但同时很强大的程序测试框架,通过这个框架,...

一路漫漫 ⋅ 2012/03/16 ⋅ 0

彻底理解 Android 中的阴影

如果我们想创造更好的 Android App,我相信我们需要遵循 Material Design 的设计规范。一般而言,Material Design 是一个包含光线,材质和投影的三维环境。如果我们想要在 App 的开发过程中,...

丁佳辉 ⋅ 04/18 ⋅ 0

Android studio插件整理

Android studio 以下简称AS,*号表示插件的常用比例,越高常用性越高 AS打开设置的快捷键Ctrl + alt + S 在线安装:File-->settings-->Plugins-->Browse repositories-->然后再输入框输入But...

惟吾德馨_慧 ⋅ 05/23 ⋅ 0

Android若干条并排RecyclerView滑动实时联动

Android若干条并排RecyclerView滑动实时联动 以水平方向并排排列的两条RecyclerView为例,实现一个简单的功能:这两个RecyclerView要实时联合滚动,即其中任意一个RecyclerView,将触发其余所...

zhangphil ⋅ 04/13 ⋅ 0

Android NestedScrollView/ScrollView包裹ViewPager自适应高度

Android NestedScrollView/ScrollView包裹ViewPager自适应高度 当Android的NestedScrollView/ScrollView这类滚动View包裹ViewPager时候,ViewPager中的Fragment包含的又是一系列高度值不固定...

zhangphil ⋅ 05/12 ⋅ 0

Android初级第一讲---Android开发环境的配置

博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 最近有些时间,但QQ群问的问题比较多,不能一一解答,如果有价值的,请来此文下方评论提问, 我会及时...

liuzxgeek ⋅ 2016/08/23 ⋅ 0

欢迎大家提问Android技术及职业生涯等问题

博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 最近有些时间,但QQ群问的问题比较多,不能一一解答,如果有价值的,请来此文下方评论提问, 我会及时...

liuzxgeek ⋅ 2016/08/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

磁盘管理—逻辑卷lvm

4.10-4.12 lvm 操作流程: 磁盘分区-->创建物理卷-->划分为卷组-->划分成逻辑卷-->格式化、挂载-->扩容。 磁盘分区 注: 创建分区时需要更改其文件类型为lvm(代码8e) 分区 3 已设置为 Linu...

弓正 ⋅ 24分钟前 ⋅ 0

Spring源码解析(六)——实例创建(上)

前言 经过前期所有的准备工作,Spring已经获取到需要创建实例的 beanName 和对应创建所需要信息 BeanDefinition,接下来就是实例创建的过程,由于该过程涉及到大量源码,所以将分为多个章节进...

MarvelCode ⋅ 44分钟前 ⋅ 0

a href="#"

<a href="#">是链接到本页,因为你有的时候需要有个链接的样式,但是又不希望他跳转,这样写,你可以把这个页面去试试

颖伙虫 ⋅ 51分钟前 ⋅ 0

js模拟栈和队列

栈和队列 栈:LIFO(先进后出)一种数据结构 队列:LILO(先进先出)一种数据结构 使用的js方法 1.push();可以接收任意数量的参数,把它们逐个推进队尾(数组末尾),并返回修改后的数组长度。 2....

LIAOJIN1 ⋅ 51分钟前 ⋅ 0

180619-Yaml文件语法及读写小结

Yaml文件小结 Yaml文件有自己独立的语法,常用作配置文件使用,相比较于xml和json而言,减少很多不必要的标签或者括号,阅读也更加清晰简单;本篇主要介绍下YAML文件的基本语法,以及如何在J...

小灰灰Blog ⋅ 59分钟前 ⋅ 0

IEC60870-5-104规约传送原因

1:周期循环2:背景扫描3:自发4:初始化5:请求6:激活7:激活确认8:停止激活9:停止激活确认10:激活结束11:远程命令引起的返送信息12:当地命令引起的返送信息13:文件传送20:响应总召...

始终初心 ⋅ 今天 ⋅ 0

【图文经典版】冒泡排序

1、可视化排序过程 对{ 6, 5, 3, 1, 8, 7, 2, 4 }进行冒泡排序的可视化动态过程如下 2、代码实现    public void contextLoads() {// 冒泡排序int[] a = { 6, 5, 3, 1, 8, 7, 2, ...

pocher ⋅ 今天 ⋅ 0

ORA-12537 TNS-12560 TNS-00530 ora-609解决

oracle 11g不能连接,卡住,ORA-12537 TNS-12560 TNS-00530 TNS-12502 tns-12505 ora-609 Windows Error: 54: Unknown error 解决方案。 今天折腾了一下午,为了查这个问题。。找了N多方案,...

lanybass ⋅ 今天 ⋅ 0

IDEA反向映射Mybatis

1.首先在pom文件的plugins中添加maven对mybatis-generator插件的支持 ` <!-- mybatis逆向工程 --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-ma......

lichengyou20 ⋅ 今天 ⋅ 0

4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例

准备磁盘分区 fdisk /dev/sdb n 创建三个新分区,分别1G t 改变分区类型为8e 准备物理卷 pvcreate /dev/sdb1 pvcreate /dev/sdb2 pvcreate /dev/sdb3 pvdisplay/pvs 列出当前的物理卷 pvremo...

Linux_老吴 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部