Android利用ViewFlipper实现屏幕切换动画效果

Activity间和ViewFlipper界面切换动画demo Activity间的切换进入和出去的动画,界面间手指左右滑动进入与出去的动画,简单易懂。 立即下载
1、屏幕切换指的是在同一个Activity内屏幕见的切换,最长见的情况就是在一个FrameLayout内有多个页面,比如一个系统设置页面;一个个性化设置页面。
2、介绍ViewFilpper类

ViewFlipper

extends ViewAnimator
java.lang.Object
   ↳android.view.View

   ↳android.view.ViewGroup


   ↳android.widget.FrameLayout



   ↳android.widget.ViewAnimator




   ↳android.widget.ViewFlipper

Class Overview

Simple ViewAnimator that will animate between two or more views that have been added to it. Only one child is shown at a time. If requested, can automatically flip between each child at a regular interval.

意思是:简单的ViewAnimator之间,两个或两个以上的view加上动画效果。只有一个小孩会显示在一个时间。如果需要,每个孩子能自动翻转之间在固定的时间间隔。

该类继承了Framelayout类,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果。

该类有如下几个和动画相关的函数:

 setInAnimation:设置View进入屏幕时候使用的动画,该函数有两个版本,一个接受单个参数,类型为android.view.animation.Animation;一个接受两个参数,类型为Context和int,分别为Context对象和定义Animation的resourceID。  

 setOutAnimation: 设置View退出屏幕时候使用的动画,参数setInAnimation函数一样。

showNext: 调用该函数来显示FrameLayout里面的下一个View。

showPrevious: 调用该函数来显示FrameLayout里面的上一个View。

3、首选看一下定义四个动画的xml文件:
in_leftright.xml——从左到右进入屏幕
1<?xml version="1.0" encoding="utf-8"?>
2<set xmlns:android="http://schemas.android.com/apk/res/android" >
3    <translate
4        android:duration="3000"
5        android:fromXDelta="-100%p"
6        android:toXDelta="0" />
7</set>

out_leftright.xml——从左到右出去屏幕
1<?xml version="1.0" encoding="utf-8"?>
2<set xmlns:android="http://schemas.android.com/apk/res/android" >
3    <translate
4        android:duration="3000"
5        android:fromXDelta="0"
6        android:toXDelta="100%p" />
7</set>

in_rightleft.xml——从右到左进入屏幕
1<?xml version="1.0" encoding="utf-8"?>
2<set xmlns:android="http://schemas.android.com/apk/res/android" >
3    <translate
4        android:duration="3000"
5        android:fromXDelta="100%p"
6        android:toXDelta="0" />
7</set>

out_rightleft.xml——从右到左出去屏幕
1<?xml version="1.0" encoding="utf-8"?>
2<set xmlns:android="http://schemas.android.com/apk/res/android" >
3    <translate
4        android:duration="3000"
5        android:fromXDelta="100%p"
6        android:toXDelta="0" />
7</set>
4、定义main.xml文件
01<?xml version="1.0" encoding="utf-8"?>
02<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
03    android:layout_width="fill_parent" android:layout_height="fill_parent"
04    android:orientation="vertical">
05    <ViewFlipper android:id="@+id/viewFlipper"
06        android:layout_width="fill_parent" android:layout_height="fill_parent">
07        <!-- 第一个页面 -->
08        <LinearLayout android:layout_width="fill_parent"
09            android:layout_height="fill_parent" android:gravity="center">
10            <ImageView android:layout_width="wrap_content"
11                android:layout_height="wrap_content" android:src="@drawable/a1" />
12        </LinearLayout>
13        <!-- 第二个页面 -->
14        <LinearLayout android:layout_width="fill_parent"
15            android:layout_height="fill_parent" android:gravity="center">
16            <ImageView android:layout_width="wrap_content"
17                android:layout_height="wrap_content" android:src="@drawable/a2"
18                android:gravity="center" />
19        </LinearLayout>
20        <!-- 第三个页面 -->
21        <LinearLayout android:layout_width="fill_parent"
22            android:layout_height="fill_parent" android:gravity="center">
23 
24            <ImageView android:layout_width="wrap_content"
25                android:layout_height="wrap_content" android:src="@drawable/a3"
26                android:gravity="center" />
27        </LinearLayout>
28        <!-- 第四个页面 -->
29        <LinearLayout android:layout_width="fill_parent"
30            android:layout_height="fill_parent" android:gravity="center">
31 
32            <ImageView android:layout_width="wrap_content"
33                android:layout_height="wrap_content" android:src="@drawable/a4"
34                android:gravity="center" />
35        </LinearLayout>
36    </ViewFlipper>
37</LinearLayout>

5、java代码实现:

01public class SwitchTest2Activity extends Activity {
02 
03    ViewFlipper viewFlipper = null;
04    float startX;
05 
06    public void onCreate(Bundle savedInstanceState) {
07        super.onCreate(savedInstanceState);
08        setContentView(R.layout.main);
09 
10        init();
11    }
12 
13    private void init() {
14        viewFlipper = (ViewFlipper) this.findViewById(R.id.viewFlipper);
15    }
16 
17    public boolean onTouchEvent(MotionEvent event) {
18        switch (event.getAction()) {
19        case MotionEvent.ACTION_DOWN:
20            startX = event.getX();
21            break;
22        case MotionEvent.ACTION_UP:
23 
24            if (event.getX() > startX) { // 向右滑动
25                viewFlipper.setInAnimation(this, R.anim.in_leftright);
26                viewFlipper.setOutAnimation(this, R.anim.out_leftright);
27                viewFlipper.showNext();
28            } else if (event.getX() < startX) { // 向左滑动
29                viewFlipper.setInAnimation(this, R.anim.in_rightleft);
30                viewFlipper.setOutAnimation(this, R.anim.out_rightleft);
31                viewFlipper.showPrevious();
32            }
33            break;
34        }
35 
36        return super.onTouchEvent(event);
37    }
38 
39}

6、效果图:
在这里看不出效果图,我贴几张图片吧!!
s1.png 从左向右滑s2.png滑到的结果s3.png
ViewFlipper详解demo 该demo主要是说明了ViewFlipper这个控件怎么使用,并加入动画效果和点击暂停过一段时间又自动切换,可谓是实现了ViewFlipper功能外又完善了它的自动切换效果 立即下载

相关推荐

STM32F103单片机驱动TM1637数码管显示模块

最近项目中需要用到数码管显示,于是买了一个TM1637芯片驱动的四位数码显示模块,现将调试过程记录一下,方便以后参考。 使用的单片机是STM32F103C8T6最小系统 使用的数码管模块是TM1637四位数码管显示模块 实际运行效果 下面先看一下TM1637和数码管连接的具体线路图 实际使用的模块没有带按键,只用了4个数码管,模块和单片机连接只需要4根线VCC、GND、CLK、DIO。芯片和单片机通信使用的是I2C总线,下面就来说一下如何...

HXYDJ的博客 1万+

Android ViewFlipper

在很多APP都有如下的(上下自动翻滚)这种效果可以使用很多方式实现,有一个简便的方式可以使用ViewFlipper控件实现,ViewFlipper控件继承结果如下:可以看出ViewFlipper 继承自ViewAnimator,ViewAnimator可以将在添加到其中的两个或多个子View之间进行动画处理的简单。一次只显示子View。可以定期在每个子View之间自动翻转。

fromVillageCoolBoy的博客 1812

nRF52811墨水屏时钟DIY:从全刷到局刷的实战改造指南(附完整代码)

本文详细介绍了如何将基于nRF52811的墨水屏时钟从耗电的全屏刷新模式改造为高效的局部刷新模式。通过剖析全刷与局刷的原理差异,提供了从工程架构、驱动层适配到应用层逻辑重构的完整实战指南,并附上关键代码示例。改造后,设备功耗显著降低,续航大幅提升,同时解决了视觉闪烁问题,是DIY低功耗墨水屏应用的实用参考。

weixin_29194693的博客 355

Android 中 ViewFlipper、AdapterViewFlipper使用

公告轮播效果,ViewFlipper、AdapterViewFlipper使用对比

周平的博客 3042

Go-zero微服务实战:从零搭建电商用户系统(含完整代码示例)

本文详细介绍了如何使用go-zero框架从零搭建电商用户系统,包含完整的微服务架构设计、核心功能实现代码示例以及性能优化策略。通过分层架构设计、JWT认证、分布式锁等关键技术,实现高并发、高可用的用户系统,适用于电商平台开发。

weixin_29275257的博客 256

CloudFlare CDN优化延迟

这两天在倒腾一个小网站,因为刚注册的域名还没来得及备案,所以就解析到了国外的服务器临时撸代码。为了防止不必要的麻烦,所以在前端套了CloudFlare,但是延迟就比较感人了,通常在150+左右还时不时的抽风,所以就找了点资料来优化一下这个延迟问题。然后再新增一些CloudFlare的亚太地区节点ip的A解析,有耐心的可以分为电信线路和联通线路,我比较懒,所以只分了境内和默认。众所周知CloudFlare是智齿cname解析的,那么我们今天就要用到这个办法了,这里要注意一下,默认的解析是不能动的。

Zuozi - 网络从业者长见识就来Zuozi.NET 1084

23. 【Android教程】轮播滚动视图:ViewFlipper

轮播视图 ViewFlipper 是 Android 从第一个版本就开始提供的 UI 控件,它能够承载多个 View,但一个时机只会有一个 View 展示在屏幕上。通过 ViewFlipper 我们可以实现很多常见的带有展示类型的功能,类似 Gallery、轮播图、导航栏、广告banner等功能,我们可以通过左右滑动、也可以设置定时自动滚动来切换 View。

这是一个web全栈开发的博客,取其精华去其糟粕,争取让大家一看就懂,一学就会,一用就成~ 3059

【WiFi软件开发】IOCTL和Netlink----用户空间和内核空间交互的两种方式

linux开发中通常会涉及用户空间和内核模块的交互。本文介绍了两种典型的用户空间和内核模块通信方式:ioctl和netlink

liuwe1ye的博客 2348

Android 之 ViewFlipper (翻转视图)的基本使用

本节给大家带了的是ViewFlipper,它是Android自带的一个多页面管理控件,且可以自动播放!1.这里我们通过动态的方法添加View,这里只是简单的ImageView,可根据自己需求进行扩展!后来发现,模拟器上因为是鼠标的关系,并不会频繁的抖动,而真机上,因为手指一直是颤抖的 所以ACTION_MOVE会一直触发,然后View一直切换,后来考虑了。//自定义一个GestureListener,这个是View类下的,别写错哦!//动态导入添加子View。通过addView方法填充View。

leyang0910的博客 1632

配置xen上VM混杂模式,使其能捕获物理网络流量

本文目的:配置VM和xen相应的物理网卡(pif)和虚拟网卡(vi

LeoDuo的专栏 3720

100天精通Python(基础篇)——第1天:Python从起源到应用的全面解析(附上Python、PyCharm、VSCode下载安装详细教程)

100天精通Python(基础篇)——第1天:Python从起源到应用的全面解析(附上Python、PyCharm、VSCode下载安装详细教程)

努力让自己发光,对的人才能迎着光而来 101万+

Android之ViewFlipper使用详解

ViewFlipper的介绍和使用 ViewFlipper是Android自带的一个多页面管理控件,且可以自动播放! 和ViewPager不同,ViewPager是一页页的,而ViewFlipper则是一层层的,和ViewPager一样,很多时候, 用来实现进入应用后的引导页,或者用于图片轮播。 一、常用的属性和方法 属性: android:inAnimation //设置View或ImageView进入屏幕时使用的动画 android:outAnimation //设置View或ImageVie

Mq_sir的博客 1万+

【本地部署实战】LM Studio深度使用指南:从环境搭建到模型调优

LM Studio通过极简的操作流程和强大的生态兼容性,让本地部署大模型成为可能。随着M4芯片的发布和CUDA 12.0的优化,未来本地化AI开发将迎来新的爆发点。建议开发者关注官方Discord社区(https://discord.gg/lmstudio)获取最新模型支持信息。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 8751

android利用ViewFlipper实现屏幕切换动画效果

1、屏幕切换指的是在同一个Activity内屏幕见的切换,最长见的情况就是在一个FrameLayout内有多个页面,比如一个系统设置页面;一个个性化设置页面。 2、介绍ViewFilpper类 ViewFlipper extends ViewAnima...

chenyijie1529的博客 253

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Android利用ViewFlipper实现屏幕切换动画效果,kotlin匿名内部类this

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android” android:layout_width=“fill_parent” android:layout_height=“fill_parent” android:background="#ffffff" android:orientation=“vertical” andr

m0_66264134的博客 314

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android--利用ViewFlipper实现屏幕切换动画效果

1、屏幕切换指的是在同一个Activity内屏幕见的切换,最长见的情况就是在一个FrameLayout内有多个页面,比如一个系统设置页面;一个个性化设置页面。 2、介绍ViewFilpper类 ViewFlipper extends ViewAnimator java.lang.Object    ↳ android.view.V

Navan 539
上一篇: 几种常见的开源软件许可协议(GPL, LGPL, Apache License, BSD)
下一篇: 硬件电路的一些常识(由CS8900a学习得到)
shareCode
博客等级 码龄15年 125粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值