Android:LayoutAnimal的神奇效果

大家好,我是时曾相识2022。不喜欢唱跳篮球,但对杰伦的Rap却情有独钟。

今天给大家讲讲酷炫的动画成员------LayoutAnimal。话不多说,直接上一个简单的效果图:

怎么样,和往常自己写的没有动画效果的页面比起来是不是更加酷炫。效果图只展示了从右到左叠加渐变的效果,只要脑洞够大,LayoutAnimal 是可以帮你实现各类动画的。接下来就让我们看看LayoutAnimal如何实现这样的效果。

首先,新建一个XML动画文件slide_from_right.xml:

ini 复制代码
<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:

ini 复制代码
<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属性即可:

ini 复制代码
android:layoutAnimation="@anim/layout_slid_from_right"

当然也可在代码中手动设置:

ini 复制代码
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的简单使用,只要你脑洞大开,各种各样的效果都能玩出来。实现起来也很简单,赶紧在项目中使用起来吧。

相关推荐
十六年开源服务商13 分钟前
2026服务器配置优化与WordPress运维实战指南
android·运维·服务器
音视频牛哥2 小时前
大牛直播SDK(SmartMediaKit)Android平台Unity3D RTSP/RTMP播放器集成实践
android·unity3d·rtsp播放器·rtmp播放器·unity3d rtmp播放器·安卓unity rtsp播放器·安卓unity rtmp播放器
w1wi2 小时前
安卓抓包完全指南(一):从入门到 SSL Pinning 绕过
android·网络协议·ssl
aqi004 小时前
一文理清 HarmonyOS 6.0.2 涵盖的十个升级点
android·华为·harmonyos·鸿蒙·harmony
赏金术士5 小时前
Jetpack Compose 状态提升(State Hoisting)完全指南
android·kotlin·compose
BoomHe5 小时前
git Rebase 为任意一笔提交补上 Change-Id
android·git·android studio
TDengine (老段)5 小时前
TDengine 超级表/子表/普通表 — 设计理念与内部表示
android·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
shuaiqinke6 小时前
【分享】Edge浏览器|内置扩展仓库|支持油猴|上网无限制
android·前端·人工智能·edge
Hali_Botebie6 小时前
岭回归(Ridge Regression),也称为L2正则化回归
数据挖掘·回归·kotlin