需要实现的效果图如下
知识点介绍
实现该种效果需要用到 Android SDK 中提供的 ViewFlipper 类。翻译它的注释如下:
可以在已添加到其中的两个或多个视图之间进行动画处理。 一次只显示一个孩子。 如果有要求,可以按固定的时间间隔自动在每个孩子之间切换。
再来看下该类的关系图
从上面的关系图可见该类是个 ViewGroup(存在感几乎为零)。那感觉我们只要将多个 TextView 放到该容器中便可实现效果图的样式了(这也太简单了)。
ViewFlipper 介绍
xml 属性
属性名称 | 解释 |
---|---|
android:autoStart | 为 true 时,自动开始动画 |
android:flipInterval | view 间切换的时间间隔 |
android:inAnimation | 进入动画 |
android:outAnimation | 离开动画 |
java 方法
方法名称 | 解释 |
---|---|
isFlipping | 判断View切换是否正在进行 |
setFilpInterval | 设置View之间切换的时间间隔 |
startFlipping | 开始View的切换,而且会循环进行 |
stopFlipping | 停止View的切换 |
setOutAnimation | 设置切换View的退出动画 |
setInAnimation | 设置切换View的进入动画 |
showNext | 显示ViewFlipper里的下一个View |
showPrevious | 显示ViewFlipper里的上一个View |
ViewFlipper 使用
1、ViewFlipper 布局
<ViewFlipper
android:id="@+id/viewflipper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:flipInterval="2000"
android:inAnimation="@anim/up_in"
android:outAnimation="@anim/up_out"
android:persistentDrawingCache="animation">
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="158dp"
android:background="@color/blue"
android:text="第一个" />
<Button
android:id="@+id/btn1"
android:layout_width="match_parent"
android:layout_height="158dp"
android:background="@color/red"
android:text="第二个" />
</ViewFlipper>
复制代码
2、进入滑出动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="100%p"
android:toYDelta="0%p"
android:duration="1000" />
</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="1000"
android:fromYDelta="0%p"
android:toYDelta="-100%p" />
</set>
复制代码
通过以上2步变实现了基础版的轮播小喇叭功能。如果本文仅止于此那就太没意思了,下面介绍进阶版
进阶
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END