博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android零基础入门第56节:翻转视图ViewFlipper打造引导页和轮播图
阅读量:6620 次
发布时间:2019-06-25

本文共 4209 字,大约阅读时间需要 14 分钟。

hot3.png

   前面两期学习了 ViewAnimator及其子类ViewSwitcher的使用,以及ViewSwitcher的子类ImageSwitcher和TextSwitcher的使用,你都掌握了吗?本期我们一起来学习ViewAnimator另一个子类 ViewFlipper组件的使用。

0GOprnJdZs8

 

 

一、ViewFlipper概述

 

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

    ViewFlipper与前面介绍的AdapterViewFlipper有较大的相似性,它们可以控制组件切换的动画效果。它们的区别是:ViewFlipper需要开发者通过addView(View v)添加多个View,而 AdapterViewFlipper则只要传入一个Adapter,Adapter将会负责提供多个View。因此ViewFlipper 可以指定与 AdapterViewFlipper 相同的 XML 属性。

    ViewFlipper组件的一些常用方法如下:

  • setInAnimation:设置View进入屏幕时使用的动画。

  • setOutAnimation:设置View退出屏幕时使用的动画。

  • showNext:调用该方法来显示ViewFlipper里的下一个View。

  • showPrevious:调用该方法来显示ViewFlipper的上一个View。

  • setFilpInterval:设置View之间切换的时间间隔。

  • setFlipping:使用上面设置的时间间隔来开始切换所有的View,切换会循环进行。

  • stopFlipping:停止View切换。

 

 

二、ViewFlipper示例

 

    接下来通过一个简单的示例程序来学习ViewFlipper的使用。

    继续使用WidgetSample工程的advancedviewsample模块,在app/main/res/layout/目录下创建viewflipper_layout.xml文件,在其中填充如下代码片段:

    上面的界面布局文件中定义了一个ViewFlipper,并在该ViewFlipper中定义了三个 ImageView,这意味着该ViewFlipper包含了三个子组件。

    接下来在Activity代码中即可调用 ViewFlipper 的 showPrevious()、showNext()等方法控制 ViewFlipper 显示上一个、下一个子组件。为了控制组件切换时的动画效果,还需要调用ViewFlipper的setlnAnimation()、setOutAnimation() 方法设置动画效果。新建ViewFlipperActivity.java文件,加载上面新建的布局文件,具体代码如下:

package com.jinyu.cqkxzsxy.android.advancedviewsample;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.ViewFlipper;/** * @创建者 鑫鱻 * @描述 Android零基础入门到精通系列教程,欢迎关注微信公众号ShareExpert */public class ViewFlipperActivity extends AppCompatActivity {    private ViewFlipper mViewFlipper = null;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.viewflipper_layout);        mViewFlipper = (ViewFlipper) findViewById(R.id.details);    }    // 上一个    public void prev(View source) {        mViewFlipper.setInAnimation(this, R.anim.slide_in_right);        mViewFlipper.setOutAnimation(this, R.anim.slide_out_left);        // 显示上一个组件        mViewFlipper.showPrevious();        // 停止自动播放        mViewFlipper.stopFlipping();    }    // 下一个    public void next(View source) {        mViewFlipper.setInAnimation(this, android.R.anim.slide_in_left);        mViewFlipper.setOutAnimation(this, android.R.anim.slide_out_right);        // 显示下一个组件        mViewFlipper.showNext();        // 停止自动播放        mViewFlipper.stopFlipping();    }    // 自动播放    public void auto(View source) {        mViewFlipper.setInAnimation(this, android.R.anim.slide_in_left);        mViewFlipper.setOutAnimation(this, android.R.anim.slide_out_right);        // 开始自动播放        mViewFlipper.startFlipping();    }}

    上面程序中的代码就是控制ViewFlipper切换组件的动画效果,以及控制ViewFlipper切换组件的关键代码。

    运行程序,点击“<”和“>”两个按钮时可以看到下图所示图片切换效果。

0GOprq3KPEe

    当点击自动播放按钮后,ViewFlipper则开始自动轮播图片。

    在该例子中使用了静态导入ViewFlipper组件页面,实际开发中也可以通过addView动态添加。如果加入手势左右滑动操作,就打造出了应用程序启动的时候经常用到的引导页面;如果同该例子一样使用自动播放,那么就非常容易实现如图片轮播等行为。

    关于ViewAnimator系列组件学习完毕,下期一起来学习Picker系列组件。

 

    今天就先到这里,如果有问题欢迎留言一起探讨,也欢迎加入Android零基础入门技术讨论微信群,共同成长!

   此文章版权为微信公众号分享达人秀(ShareExpert)——鑫鱻所有,若需转载请联系作者授权,特此声明!

 

往期总结分享:

Android零基础入门第1节:

Android零基础入门第2节:

Android零基础入门第3节:

Android零基础入门第4节:

Android零基础入门第5节:

Android零基础入门第6节:

Android零基础入门第7节:

Android零基础入门第8节:

Android零基础入门第9节:

Android零基础入门第10节:

Android零基础入门第11节:

Android零基础入门第12节:

Android零基础入门第13节:

Android零基础入门第14节:

Android零基础入门第15节:

Android零基础入门第16节:

Android零基础入门第17节:

Android零基础入门第18节:

Android零基础入门第19节:

Android零基础入门第20节:

Android零基础入门第21节:

Android零基础入门第22节:

Android零基础入门第23节:

Android零基础入门第24节:

Android零基础入门第25节:

Android零基础入门第26节:

Android零基础入门第27节:

Android零基础入门第28节:

Android零基础入门第29节:

Android零基础入门第30节:

Android零基础入门第31节:

Android零基础入门第32节:

Android零基础入门第33节:

Android零基础入门第34节:

Android零基础入门第35节:

Android零基础入门第36节:

Android零基础入门第37节:

Android零基础入门第38节:

Android零基础入门第39节:

Android零基础入门第40节:

Android零基础入门第41节:

Android零基础入门第42节:

Android零基础入门第43节:

Android零基础入门第44节:

Android零基础入门第45节:

Android零基础入门第46节:

Android零基础入门第47节:

Android零基础入门第48节:

Android零基础入门第49节:

Android零基础入门第50节:

Android零基础入门第51节:

Android零基础入门第52节:

Android零基础入门第53节:

Android零基础入门第54节:

Android零基础入门第55节:

0GOprm8U5p2

0GOprrlbOGO

转载于:https://my.oschina.net/u/3598984/blog/1529141

你可能感兴趣的文章
Java学习笔记 1—命名规则、数据类型、运算符
查看>>
FusionCharts入门教程,使用指南
查看>>
数组的一些方法
查看>>
关于MFC中WM_MOUSEHOVER和WM_MOUSELEAVE消息的使用
查看>>
我的友情链接
查看>>
Android掌中游斗地主游戏源码完整版
查看>>
LeetCode - 26. 删除排序数组中的重复项
查看>>
Linux LVM逻辑卷配置过程详解
查看>>
IT讲师韩顺平:创业不易,尚硅谷延续教育初心
查看>>
利用nmap对Mongodb Redis未授权访问测试
查看>>
CakePHP
查看>>
我的友情链接
查看>>
编译mysql5.6.27
查看>>
搭建centos6.7网站服务器记录
查看>>
Release版本调用ffmpeg av_register_all程序崩溃
查看>>
Referenced management pack not found
查看>>
jquery中data函数的用法示例
查看>>
巧用strtotime函数计算日期
查看>>
JVM中java对象的生命周期
查看>>
JFinal集成YUI Compressor压缩合并JS和CSS
查看>>