ViewFlipper组件继承了ViewAnimator,它可以调用addView(View v)添加多个组件向ViewFlipper中添加多个组件之后,ViewFlipper可使用动画控制多个组件之间的切换效果

ViewAnimator是一个基类,它继承的是FrameLayout,因此可以将多个View组件“叠加”在一起,ViewAnimator额外增加的功能就是可以在View切换时表现出动画效果。

ViewFlipper继承了ViewAnimation,额外增加的新功能如下:

eg.自动播放的图片库

acitivity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.viewflippertest.MainActivity" ><!--  ViewFlipper组件,放了三个ImageView组件--><ViewFlipperandroid:id="@+id/viewFlipper1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentTop="true"android:layout_marginLeft="80dp"android:layout_marginTop="34dp"android:flipInterval="1000" ><ImageViewandroid:id="@+id/imageView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/bomb10" /><ImageViewandroid:id="@+id/imageView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/bomb11" /><ImageViewandroid:id="@+id/imageView3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/bomb12" /></ViewFlipper><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_centerVertical="true"android:layout_marginLeft="32dp"android:onClick="prev"android:text="<" /><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:layout_toRightOf="@+id/button1"android:onClick="auto"android:text="Auto" /><Buttonandroid:id="@+id/button3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBaseline="@+id/button2"android:layout_alignBottom="@+id/button2"android:layout_toRightOf="@+id/button2"android:onClick="next"android:text=">" /></RelativeLayout>

MainActvity.java

package com.example.viewflippertest;import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ViewFlipper;public class MainActivity extends Activity {ViewFlipper cf;//ViewFlipper对象@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);cf=(ViewFlipper) findViewById(R.id.viewFlipper1);}//响应按钮函数public void prev(View v){cf.setInAnimation(this,R.anim.slide_in_right);cf.setOutAnimation(this,R.anim.slide_out_left);cf.showPrevious();//停止切换cf.stopFlipping();};//响应按钮函数public void auto(View v){cf.setInAnimation(this,R.anim.slide_in_right);cf.setOutAnimation(this,R.anim.slide_out_left);cf.startFlipping();};//响应按钮函数public void next(View v){cf.setInAnimation(this,R.anim.slide_in_left);cf.setOutAnimation(this,R.anim.slide_out_right);cf.showNext();//停止切换cf.stopFlipping();};@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}
}

slide_in_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><!-- 设置从左边拖进来的动画android:duration指定动画持续时间  --><translateandroid:fromXDelta="-100%p"android:toXDelta="0"android:duration="@android:integer/config_mediumAnimTime" />
</set>

slide_in_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><!-- 设置从右边拖进来的动画android:duration指定动画持续时间  --><translateandroid:fromXDelta="100%p"android:toXDelta="0"android:duration="@android:integer/config_mediumAnimTime" />
</set>

slide_out_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><!-- 设置从左边拖出去的动画 android:duration指定动画持续时间 --><translateandroid:fromXDelta="0"android:toXDelta="-100%p"android:duration="@android:integer/config_mediumAnimTime" />
</set>

slide_out_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><!-- 设置从左边拖出去的动画 android:duration指定动画持续时间 --><translateandroid:fromXDelta="0"android:toXDelta="100%p"android:duration="@android:integer/config_mediumAnimTime" />
</set>

ViewFlipper的功能和用法相关推荐

  1. 数值选择器(NumberPicker)的功能与用法

     数值选择器用于让用户输入数值,用户既可以通过键盘输入数值,也可以通过拖动来选择数值.使用该组件常用如下三个方法. setMinValue(int minVal):设置该组件支持的最小值. set ...

  2. Javascript自定义事件功能与用法实例分析

    原文地址:https://www.jb51.net/article/127776.htm 本文实例讲述了javascript自定义事件功能与用法.分享给大家供大家参考,具体如下: 概述 自定义事件很难 ...

  3. trait功能 php,PHP之Trait功能与用法实例分析

    本文实例讲述了PHP Trait功能与用法.分享给大家供大家参考,具体如下: Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制. 1.如果引入的Trait有同名的方法trait A{ ...

  4. mysql中外键的作用是什么_mysql外键基本功能与用法详解

    本文实例讲述了mysql外键基本功能与用法.分享给大家供大家参考,具体如下: 本文内容: 什么是外键 外键的增加 外键的修改和删除 外键的约束模式 首发日期:2018-04-12 什么是外键: 外键就 ...

  5. Delphi Format函数功能及用法详解

    DELPHI中Format函数功能及用法详解 DELPHI中Format函数功能及用法详解function Format(const Format: string; const Args: array ...

  6. php 反射对象属性,php面向对象之反射功能的用法详解

    这篇文章主要介绍了php面向对象之反射功能与用法,结合实例形式简单分析了php5面向对象反射的概念及具体用法,需要的朋友可以参考下 本文实例讲述了php面向对象之反射功能与用法.分享给大家供大家参考, ...

  7. python中sys用法_Python中sys模块功能与用法实例详解

    Python中sys模块功能与用法.,具体如下: sys-系统特定的参数和功能 该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数.它始终可用. sys.argv 传递给Pyth ...

  8. Android学习笔记 2.5.3 实例——使用SimpleAdapter创建ListView 2.5.4 自动完成文本框(AutoCompleteTextView)的功能与用法

    Android学习笔记 疯狂Android讲义 文章目录 Android学习笔记 疯狂Android讲义 第2章 Android 应用的界面编程 2.5 第4组 UI组件:AdapterView及其子 ...

  9. java正则 环视_Java正则环视和反向引用功能与用法详解

    本文实例讲述了Java正则环视和反向引用功能与用法.分享给大家供大家参考,具体如下: 环视 1.环视概念 环视,又称为零宽断言,简称断言. 环视强调位置(前面或后面),必须匹配环视表达式,才能匹配成功 ...

最新文章

  1. [原创]Java性能优化权威指南读书思维导图
  2. 为什么要学习 Markdown?究竟有什么用?
  3. 如何搭建数据中台?行业AI独角兽:一手AI,一手Know-How
  4. linux vi/vim使用
  5. mysql5.0锁定用户_MySQL系列(五)---总结MySQL中的锁
  6. inventor2019有无CAE_Inventor2019最新下载_Inventor2019正式版 - 软件帝
  7. 网站的基本功能:RBAC
  8. IBM X3650 M4 服务器
  9. Destoon数据库配置文件在哪_SpringBoot中yml配置文件说明和一些常用配置项说明
  10. QT开发pjsip的VOIP,A8平台运行
  11. [RN] React Native 使用 Redux 比较详细和深刻的教程
  12. 如何用maven创建java项目_Maven创建Java项目
  13. Python:实现sha256算法(附完整源码)
  14. 金蝶K3 Wise—BOM批量多级展开
  15. SAP-如何学好SAP BASIS
  16. 玩转代码|简单分析如何获取小程序的t值
  17. matlab:pause命令
  18. c语言浮点常量,C 浮点常量
  19. gps+wifi+mobile 5的手机参数对比
  20. HDU - 6578 Blank DP + 滚动数组

热门文章

  1. ON_NOTIFY消息中的id坑了我一天
  2. 数据挖掘 —— 有监督学习(分类)
  3. 设计模式总结 (4)结构型模式
  4. 深度学习的数学 (5)偏导数
  5. C++ Primer 5th笔记(chap 10)泛型算法 :算法形参
  6. 2021年辽宁省大学生数学建模竞赛题目A题_智慧停车的运营、管理规划
  7. python_面向对象进阶之元类
  8. django中序列化、反序列化过程
  9. armv8/armv9的简介-学习这一篇就够了
  10. Linux Kernel中的系统调用分析