ViewFlipper实现文字轮播效果
作者:敲代码的鸟 发布时间:2022-04-14 11:10:25
ViewFlipper实现文字轮播(仿淘宝头条垂直滚动广告),供大家参考,具体内容如下
广告条目可以单独写成布局文件,然后在布局文件或者代码中添加到总布局中
从源码可以看出,其实ViewFlipper间接的继承了FrameLayout,也可以说ViewFlipper其实就是个FrameLayout,只不过在内部封装了动画实现和Handler实现一个循环而已。
布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--android:autoStart:设置自动加载下一个View-->
<!--android:flipInterval:设置View之间切换的时间间隔-->
<!--android:inAnimation:设置切换View的进入动画-->
<!--android:outAnimation:设置切换View的退出动画-->
<ViewFlipper
android:id="@+id/view_flipper"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_centerInParent="true"
android:autoStart="true"
android:background="#808080"
android:flipInterval="2000"
android:inAnimation="@anim/slide_in_down"
android:outAnimation="@anim/slide_out_up">
<TextView
android:id="@+id/first"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="白日依山尽"
android:textColor="#FF00FF"
android:textSize="50sp" />
<TextView
android:id="@+id/second"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="黄河入海流"
android:textColor="#FF00FF"
android:textSize="50sp" />
<TextView
android:id="@+id/third"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="欲穷千里目"
android:textColor="#FF00FF"
android:textSize="50sp" />
<TextView
android:id="@+id/forth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="更上一层楼"
android:textColor="#FF00FF"
android:textSize="50sp" />
</ViewFlipper>
</RelativeLayout>
这里介绍ViewFlipper用到的属性,这些属性其实都可以使用代码实现,只不过这里为了代码看上去美观,才放在布局里的
android:autoStart : 设置自动加载下一个View
android:flipInterval : 设置View之间切换的时间间隔
android:inAnimation : 设置切换View的进入动画
android:outAnimation : 设置切换View的退出动画
下面是ViewFlipper常用的方法介绍,除了可以设置上面的属性之外,还提供了其他方法
isFlipping : 判断View切换是否正在进行
setFlipInterval : 设置View之间切换的时间间隔
startFlipping : 开始View的切换,而且默认会循环进行
stopFlippiing : 停止View的切换
setOutAnimation : 设置切换View的退出动画
setInAnimation : 设置切换View的进入动画
showNext : 显示ViewFlipper里的下一个View
showPrevious : 显示ViewFlipper里的上一个View
这里还涉及到两个动画其实就是一个平移的动画,它们都保存在anim文件夹中
slide_in_down.xml 进入动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromYDelta="100%"
android:toYDelta="0"/>
</set>
slide_out_up.xml 退出动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromYDelta="0"
android:toYDelta="-100%"/>
</set>
MainActivity
package com.nrf.mydemo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
运行之后,效果图
来源:https://blog.csdn.net/luck_nie/article/details/80012092


猜你喜欢
- 1、设置ssh安装ssh相关软件包:sudo apt-get install openssh-client openssh-server然后
- Android 通过Socket 和服务器通讯,是一种比较常用的通讯方式,时间比较紧,说下大致的思路,希望能帮到使用socket 进行通信的
- 前言2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化。在修改之前,我的说法是这样的:就像鲸鱼吃虾米一样,也许
- AnyChat(全名叫Anychat SDK),也叫音视频互动开发平台;是一套跨平台的即时通讯解决方案,基于先进的H.264视频编码标准、A
- 本文实例为大家分享了unity通过Mesh网格绘制球体的具体代码,供大家参考,具体内容如下接着上一篇文章说:球体public class 球
- 二叉树(binary tree)是一颗树,其中每个节点都不能有多于两个的儿子。1.二叉树节点作为图的特殊形式,二叉树的基本组成单元是节点与边
- C#实现的对两个Table进行Merge,两表必须存在至少一个公共栏位作为连接项,否则连接就失去了意义。如下是对两个table进行Merge
- 1、修改maven的pom文件只需要将如下依赖添加到pom.xml文件中即可。(注意此处是以plugin的方式,放在<plugins&
- 前言现在市面上很多应用都会有当用户按返回键的时候提示用户:再按一次将退出应用的提示,也就是双击双击返回键退出应用,接下来我们就用几种办法来实
- 简介:Springboot使用Mybatis&Mybatis-plus 两者文件映射配置略有不同,之前我用的是Mybatis,但公司
- Spring Cloud Gateway去掉url前缀主要是增加一个 route,其他配置不变routes: - id: ser
- IBATIS简介ibatis是 Apache的开源项目,一个ORM 解决方案,ibatis最大的特点就是小巧,上手很快。使用 ibatis提
- 1.1.1 摘要 在我们日常的工作中经常需要在应用程序中保持一个唯一的实例,如:IO处理,数据库操作等,由于这些对象都要占用重要的
- analyzer的使用规则查询只能查找倒排索引表中真实存在的项, 所以保证文档在索引时与查询字符串在搜索时应用相同的分析过程非常重要,这样查
- 一丶前言在之前我们学习了SpringBoot自动装配如何实现的,我们总结了Spring IOC的底层原理。但是我们还是不知道SpringAp
- 下面提供三种计时器的写法供大家参考,大家可以自行选择自己钟爱的使用。写法一(Spring 包提供的计时器):import java.text
- 我们日常的工作中都使用开发工具(IntelliJ IDEA 或 Eclipse 等)可以很方便的调试程序,或者是通过打包工具把项目打包成 j
- 实现流程初始化一定数量的任务处理线程和缓存线程池,用户每次调用接口,开启一个线程处理。假设初始化5个处理器,代码执行 BlockingQue
- 在任何的生产环境中我们都不可逃避并发这个问题,多线程作为并发问题的技术支持让我们不得不去了解。这一块知识就像一个大蛋糕一样等着我们去分享,抱
- 十进制整数与其他进制的字符串之间的转换。c#中十六进制用前缀0x表示。int c = 0x1000;一、利用Convert.ToString