Android ApiDemo学习(五)Animation—— 6 Hide-Show Animation

本文介绍了Android中实现按钮隐藏与显示的动画效果,包括点击按钮消失、Checkbox控制动画类型以及自定义动画。通过设置LayoutTransition,实现了按钮添加、删除时的不同动画场景,如绕轴旋转、缩放等视觉效果。同时详细解析了相关代码实现和动画原理。
摘要由CSDN通过智能技术生成

动画效果:

点击ShowButtons:显示四个按钮0-3

点击按钮0-3,自己消失

勾选checkbox1:按钮消失、出现有转圈的动画效果

勾选checkbox2:按钮x消失,之后的按钮会前移,占据x的原有位置

 

xml布局文件:可以看到静态的布局文件里,没有按钮0-3,这四个按钮是java代码动态控制的

 

LayoutAnimationsHideShow.java:

  • 主activity的oncreate:

1. 创建四个按钮,添加监听器。

2. 按钮监听器:点击按钮后,对应按钮消失。根据checkbox2是否勾选,确定按钮是“GONE”还是“INVISIBLE”。前者不仅消失,位置也不保留;后者只是不可见,按钮位置还保留

3. "添加按钮"按钮的监视器:点击后,上面四个按钮都设置为VISIBLE,即可见

4. checkbox1的状态:

 首先需要知晓一个概念,LayoutTransition:当ViewGroup对象的一个layout发生改变时,LayoutTransition可以使能一个auto animation。这个“改变”指Layout Container中的item添加或者删除(invisible与否也包含在内)。item的添加、删除会引起APPEARING和DISAPPEARING事件,从而引发动画效果。使用setLayoutTransition为Layout Container设置这种功能。如果是自定义的动画,使用setAnimator函数

(1)checkbox1选中:

------使用setStagger函数,设置两种改变引起动画,分别是CHANGE_APPEARING和CHANGE_DISAPPEARING,延迟时间都是30. 这个延迟时间指的是container中相邻item之间的动画延迟。比如将这个延迟增大,那么点击按钮0,0消失后,1的动画开始时间和2的动画开始时间,二者之间的时间差会增长。

------调用自定义函数setupCustomAnimations,这个函数的功能是是使用setAnimator函数增加一个自定义动画,详细见下

(2)checkbox1未选中:

直接setLayoutTransition,使用的不是选中状态下的自定义动画,而是LayoutTransition提供的默认动画。

 

  • setupCustomAnimations函数,使用setAnimator添加自定义动画

四个动画效果:分别为Adding、Changing while adding、Removing、Changing while Removing。

1. Adding:添加一个按钮时。——点击show buttons按钮后,四个按钮显示时的动画

绕y轴旋转90度出现。

2. Changing while adding:添加按钮,导致其他按钮移动时,其他按钮的动画。——本例中四个按钮一起出现,因此这个动画没有体现出来

按钮缩小到不见,又扩大到原样

3. Removing:删除按钮时。——点击下面四个按钮中的某一个,被点击按钮消失的动画

绕x轴旋转90度不见。

4. Changing while removing:删除按钮,导致其他按钮移动时,其他按钮的动画。——本例中,checkbox1、2都勾选,点击四个按钮中的一个,它右方的按钮的动画

转着圈移动到前一位置。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值