视图组 (ViewGroup)中子元素的出场效果
Posted 我想月薪过万
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了视图组 (ViewGroup)中子元素的出场效果相关的知识,希望对你有一定的参考价值。
效果展示
- 视图组(
ViewGroup
)中子元素可以具备出场时的补间动画效果 - 常用需求场景:为
ListView
的item
设置出场动画 - 使用步骤:
第一步:设置 子元素 的出场动画
res/anim/view_animation.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="300">
<translate android:fromXDelta="-100%p" android:toXDelta="0%p"/>
</set>
第二步:设置 视图组 的动画文件
res/anim/layout_animation.xml
<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation
xmlns:android="http://schemas.android.com/apk/res/android"
android:delay="0.5"
// 子元素开始动画的时间延迟
// 如子元素入场动画的时间总长设置为300ms
// 那么 delay = "0.5" 表示每个子元素都会延迟150ms才会播放动画效果
// 第一个子元素延迟150ms播放入场效果;第二个延迟300ms,以此类推
android:animationOrder="normal"
// 表示子元素动画的顺序
// 可设置属性为:
// 1. normal :顺序显示,即排在前面的子元素先播放入场动画
// 2. reverse:倒序显示,即排在后面的子元素先播放入场动画
// 3. random:随机播放入场动画
android:animation="@anim/view_animation"
// 设置入场的具体动画效果
// 将步骤1的子元素出场动画设置到这里
/>
第三步:为 视图组(ViewGroup) 指定
andorid:layoutAnimation
属性
指定的方式有两种: XML / Java代码设置
方式1:在 XML
中指定
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<ListView
android:id="@+id/lv_show_data"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layoutAnimation="@anim/layout_animation" />
</LinearLayout>
方式2:在Java代码中指定
这样就不用额外设置 res/anim/layout_animation.xml 该xml文件了
lv_show_data = findViewById(R.id.lv_show_data);
//获取单个 View 动画
Animation animation = AnimationUtils.loadAnimation(this,R.anim.view_animation);
//创建视图组动画
LayoutAnimationController controller = new LayoutAnimationController(animation);
controller.setDelay(0.5f);
controller.setOrder(LayoutAnimationController.ORDER_NORMAL);
//为 ViewGroup 设置动画
lv_show_data.setLayoutAnimation(controller);
效果展示
至此,Android
动画中的补间动画
的所有知识点都讲解完毕。
以上是关于视图组 (ViewGroup)中子元素的出场效果的主要内容,如果未能解决你的问题,请参考以下文章