Android View动画之LayoutAnimation的使用

这篇具有很好参考价值的文章主要介绍了Android View动画之LayoutAnimation的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接前篇 Android View动画整理 ,本篇介绍 LayoutAnimation 的使用。

参考《安卓开发艺术探索》。

View 动画作用于 View 。
LayoutAnimation 则作用于 ViewGroup , 为 ViewGoup 指定一个动画,ViewGoup 的子 View 出场时就具体动画效果。
简言之,LayoutAnimation 是为 ViewGroup 的子View指定出场动画。

开始使用,两种方式,xml 方式 和 java 方式 。

xml 方式

创建 R/anim/layout_anim_item.xml ,这个是子View的出场动画,实际的动画效果,本例为平移加透明度动画。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:shareInterpolator="true"
    android:interpolator="@android:anim/accelerate_interpolator">

    <alpha android:fromAlpha="0.0" android:toAlpha="1.0"/>

    <translate android:fromXDelta="800" android:toXDelta="0"/>
</set>

定义 LayoutAnimation ,创建 R/anim/layout_anim.xml ,

<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:animationOrder="normal"
    android:delay="0.5"
    android:animation="@anim/layout_anim_item">
</layoutAnimation>
  • android:animationOrder :子 View 动画的顺序,可选 normal 、reverse 、random 。normal 是排在前面的子View先开始动画;reverse 是排在后面的子View先开始动画;random 是子View随机播放动画。

  • android:delay :子View 开始动画的时间延迟。源码里的说明 child animation delay = child index * delay * animation duration ,即 1000 毫秒的动画,第1个子View 延迟 500 毫秒(1 * 0.5 * 1000)播放入场动画,第2个子View 延迟 1000 毫秒(2 * 0.5 * 1000)播放入场动画。

  • android:animation :指定子View的出场动画,实际的动画效果。

为 ViewGoup 的指定 android:layoutAnimation 属性,如

<LinearLayout
        <!-- -->
        android:layoutAnimation="@anim/layout_anim"
        <!-- --> >

贴下本例的 xml ,是一个 LinearLayout 包含多个其他控件,

<LinearLayout
        android:id="@+id/ll_layout_anim"
        android:layout_width="400dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:orientation="vertical"
        android:layoutAnimation="@anim/layout_anim"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.129">

        <TextView
            android:textSize="20sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView1"
            android:textColor="@color/my_red"/>

        <TextView
            android:textSize="20sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView2"
            android:textColor="@color/purple_500"/>

        <TextView
            android:textSize="20sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView3"
            android:textColor="@color/black"/>

        <TextView
            android:textSize="20sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView4"
            android:textColor="@android:color/holo_green_light"/>

        <ImageView
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/ic_red_cycle"/>

        <Button
            android:text="Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <ImageView
            android:layout_width="200dp"
            android:layout_height="100dp"
            android:background="@drawable/pic_beauty"/>


    </LinearLayout>

至此,OK。运行效果,
Android View动画之LayoutAnimation的使用,Android,Animation,android

java 方式

通过 LayoutAnimationController 实现。

用前面提到的 R/anim/layout_anim_item.xml 动画文件,

创建动画 animation ,创建 LayoutAnimationController ,ViewGroup.setLayoutAnimation(LayoutAnimationController controller) ,

	public void onLAButtonClick(View view) {
        if (view.getId() == R.id.button_la_hide) {
            mLinearLayout.setVisibility(View.INVISIBLE);

        } else if (view.getId() == R.id.button_la_show) {
            mLinearLayout.setVisibility(View.VISIBLE);

            Animation animation = AnimationUtils.loadAnimation(this, R.anim.layout_anim_item);
            
            LayoutAnimationController controller = new LayoutAnimationController(animation);
            controller.setDelay(0.5f);
            //controller.setOrder(LayoutAnimationController.ORDER_NORMAL);
            controller.setOrder(LayoutAnimationController.ORDER_REVERSE);
            //controller.setOrder(LayoutAnimationController.ORDER_RANDOM);
            
            mLinearLayout.setLayoutAnimation(controller);
        }

    }

很简单,完成,运行效果:
Android View动画之LayoutAnimation的使用,Android,Animation,android文章来源地址https://www.toymoban.com/news/detail-675415.html

到了这里,关于Android View动画之LayoutAnimation的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS animation动画使用详解

    目录 一、animation动画的使用步骤 第一步:定义动画 第二步:使用动画 二、animation的复合属性 三、animation的拆分属性 四、动画属性 animation:动画名称 动画时长 速度曲线 延迟时间 重复次数 动画方向 执行完毕时的状态 逐帧动画(配合精灵图使用) animation-timing-function:step(N) N为将动

    2024年02月16日
    浏览(39)
  • Unity 制作动画 - Animation 的使用

    1. unity 顶部导航栏点击 Window  Animation 打开 Animation 窗口 通过这个窗口可以创建、编辑动画,也可以查看导入的动画。Animation 窗口同一时间只能查看、编辑同一段Clip中的动画 2. 选中 Hierarchy 面板中的节点, 也就是要制作动画的物体,该物体上没有动画,可以点击Animation窗口

    2024年02月15日
    浏览(42)
  • 小程序动画 animation 的常规使用

    公司小程序项目比较多,最近正好有时间看一下小程序的动画,同时记录一下我的学习过程;看到这个文章的,我建议你直接去小程序后台:https://developers.weixin.qq.com/miniprogram/dev/api/ui/animation/wx.createAnimation.html 1、使用 duration:持续时间 timingFunction:动画效果 delay:延迟时间

    2024年02月13日
    浏览(38)
  • Android 使用motion 动画如何使用

    MotionLayout 是 Android 中的一个强大的布局容器,它可以用来创建复杂的动画和过渡效果,允许你在布局中定义多个状态,并在这些状态之间进行平滑的动画过渡。以下是使用 MotionLayout 创建动画的基本步骤: 1. 添加依赖: 首先,确保在你的 app 模块的 build.gradle 文件中添加以下

    2024年02月09日
    浏览(38)
  • Android ConstrainLayout布局中View位置的介绍与使用

            ConstrainLayout是一款布局View,再Design库中,现已被大家广泛接受并使用。ConstrainLayout的布局采用的方式和其他都不同,他的对其方式是类似RelativeLayout,但是和RelativeLayout有明显的区别。         在布局渲染的时候,ConstrainLayout的子View是通过在一个容器中找到自

    2024年02月12日
    浏览(35)
  • Android 动画 Lottie 如何使用

    一、简介 Lottie 是Airbnb开源的一个面向 iOS、Android、React Native 的动画库,能分析 Adobe After Effects 导出的动画,并且能让原生 App 像使用静态素材一样使用这些动画,完美实现动画效果。 1.让设计师使用Adobe 的 After Effects(简称 AE)工具(美工一般都会这个)制作这个动画。 2.在AE中安

    2024年04月26日
    浏览(35)
  • Unity Animation -- 使用Animator控制动画

            在很多实际场景中,我们经常需要根据特定的事件(比如玩家输入,敌人受到攻击等)来播放不同的动画。这需要我们了解一下Animator,Animator Controller和基础的动画状态机。         首先我们来创建一个简单的开门动画,示例中的门的模型来自官方教程。其实我们也

    2023年04月27日
    浏览(70)
  • Pygame 基础教程12: 使用 精灵(Sprite) 实现 帧动画(Animation)

    原文链接:https://xiets.blog.csdn.net/article/details/131395288 版权声明:原创文章禁止转载 专栏目录:Pygame 专栏(总目录) 精灵(Sprite) 表示游戏画面中基本的显示元素,前面所介绍的精灵虽然位置可以动态移动,但都是一张静态图片。游戏中还有许多动态的动画精灵,如一只飞翔的

    2024年01月17日
    浏览(56)
  • 腾讯出品Pag动画框架在Android端的使用-网络Pag加载

    在我们可以通过assets的方式加在pag文件之后,我们会考虑下一个问题,可不可以用Pag框架加载网络文件? 为什么会有这样的问题出现,或者说网络方式加载可以解决什么问题? APK 体积增加问题 当一个项目规模比较大的时候,会做很多优化工作,其中「APK瘦身」便是一项优化

    2024年02月13日
    浏览(87)
  • 使用动态网格的流体动画 Fluid Animation with Dynamic Meshes 论文阅读笔记

    原文: Klingner, Bryan M., et al. “Fluid animation with dynamic meshes.” ACM SIGGRAPH 2006 Papers. 2006. 820-825. 使用 [Alliez et al., 2005] 的方法动态生成不规则的四面体网格 根据边界的位置、边界的形状、基于流体和速度场的视觉重点部分的标准来构建一个尺寸场。这个尺寸场表明要生成的四面体

    2024年02月21日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包