前言
实现上线翻滚的视图的办法有很多种,比如viewpager。今天我们要分享的是使用ViewFlipper实现这种效果。
原理
ViewFlipper的实现原理,是通过动画+广播
代码讲解
用到的类ViewFlipper,Animation
<ViewFlipper
android:id="@+id/viewFlipper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autoStart="true"
android:flipInterval="2000"
android:inAnimation="@anim/anim_come_in"
android:outAnimation="@anim/anim_get_out">
属性介绍
android:autoStart=“true”//默认是否自动滚动
android:flipInterval=“2000”//滚动间隔
android:inAnimation="@anim/anim_come_in"//滚入动画
android:outAnimation="@anim/anim_get_out"//滚出动画
首先介绍一下今天的主角ViewFlipper,ViewFlipper类继承于ViewAnimator
ViewAnimator
Base class for a {@link FrameLayout} container that will perform animations
when switching between its views.
我们主要关注一下set方法和getCurrentView方法,后面我们都会用到的
关于ViewAnimator的几个实现类
ViewAnimator有两个直接子类分别是ViewSwitcher和ViewFlipper
这两个容器都有切换视图的功能,但场景不同。ViewSwitcher比较简单,作为视图上下切换容器使用
而ViewFlipper循环切换的功能。
ViewFlipper通过postDelayed方法控制动画停留时间。同时注册了广播监听来监听应用前后台切换的,并及时的停止和开启视图切换。