Android中LayoutAnimal的使用方法详解
今天给大家讲讲酷炫的动画成员——LayoutAnimal。话不多说,直接上一个简单的效果图:

怎么样,和往常自己写的没有动画效果的页面比起来是不是更加酷炫。效果图只展示了从右到左叠加渐变的效果,只要脑洞够大,LayoutAnimal是可以帮你实现各类动画的。接下来就让我们看看LayoutAnimal如何实现这样的效果。
首先,新建一个XML动画文件slide_from_right.xml:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="600">
<translate
android:fromXDelta="100%p"
android:interpolator="@android:anim/decelerate_interpolator"
android:toXDelta="0" />
<alpha
android:fromAlpha="0.5"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:toAlpha="1" />
</set>set标签下由translate(移动)和alpha(渐变)动画组成。
其中translate(移动)动画由100%p移动到0。这里需要注意使用的是100%p,其中加这个p是指按父容器的宽度进行百分比计算。插值器就根据自己想要的效果设置,这里使用了一个decelerate_interpolator(减速)插值器。
第二个动画是alpha(渐变)动画,由半透明到不透明,其中插值器是先加速后减速的效果。
接着我们还需要创建一个layoutAnimation,其实也是一个XML文件layout_slid_from_right.xml:
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:animation="@anim/slide_from_right"
android:animationOrder="normal"
android:delay="15%"/>其中animation指定的就是我们创建的第一个xml文件。animationOrder是指动画执行的顺序模式,包含normal, reverse 和random。normal就是从上到下依次进行,reverse根据名字就知道是反序,random那当然是随机了,我们就使用mormal即可。delay则是每个子视图执行动画的延迟比例,这里需要注意的是这是相对于上个子视图执行动画延时比例。
最后我们只需要在咱们的ViewGroup中设置layoutAnimation属性即可:
android:layoutAnimation="@anim/layout_slid_from_right"
当然也可在代码中手动设置:
val lin = findViewById<LinearLayout>(R.id.linParent) val resId = R.anim.layout_slid_from_right lin.layoutAnimation = AnimationUtils.loadLayoutAnimation(lin.context, resId)
总结:
- layoutAnimation可以使用在任何一个ViewGroup上
- 在使用set标签做动画叠加的时候一定要注意,set标签内需要添加duration属性,也就是动画时间。如果不加动画是没有效果的。
- 使用移动动画时,在百分比后面添加p的意思是基于父容器宽度进行百分比计算
以上便是LayoutAnimal的简单使用,只要你脑洞大开,各种各样的效果都能玩出来。实现起来也很简单,赶紧在项目中使用起来吧。
到此这篇关于Android中LayoutAnimal的作用详解的文章就介绍到这了,更多相关Android LayoutAnimal作用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Android仿知乎客户端关注和取消关注的按钮点击特效实现思路详解
这篇文章主要介绍了Android仿知乎客户端关注和取消关注的按钮点击特效实现思路详解的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下2016-09-09
Android ListView里控件添加监听方法的实例详解
这篇文章主要介绍了Android ListView里控件添加监听方法的实例详解的相关资料,这里提供实例帮助大家学习理解这部分内容,需要的朋友可以参考下2017-08-08
Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码
这篇文章主要介绍了Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下2017-03-03
Android MaterialCardView的使用介绍与示例
MaterialCardView是一个基于Android支持库中的CardView的可自定义组件。 MaterialCardView提供了CardView的所有功能,但增加了一些自定义属性,使用起来更加方便实用2021-11-11
Android画图实现MPAndroidchart折线图示例详解
这篇文章主要为大家介绍了Android画图实现MPAndroidchart折线图示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-07-07
Flutter如何通过一行命令解决多个pubspec.yaml文件的依赖项问题
这篇文章主要介绍了Flutter如何通过一行命令解决多个pubspec.yaml文件的依赖项问题,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-06-06
Android 5.1 WebView内存泄漏问题及快速解决方法
下面小编就为大家带来一篇Android 5.1 WebView内存泄漏问题及快速解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-05-05


最新评论