RecyclerView加载动画

引言

看到很多RecyclerView都有不错的动画,我动画知识也很欠缺,就决定拿他来玩玩。

本文先玩设置RecyclerView的加载动画

代码

效果

实现步骤:
1.在res/anim文件下新增动画animate.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@integer/anim_duration_medium">

    <translate
        android:fromYDelta="100%"
        android:toYDelta="0" />

    <alpha
        android:fromAlpha="0"
        android:toAlpha="1" />

    <scale
        android:fromXScale="105%"
        android:fromYScale="105%"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="100%"
        android:toYScale="100%" />

</set>

2.recylerView设置LayoutAnimationController

LayoutAnimationController controller = new LayoutAnimationController(AnimationUtils.loadAnimation(this,R.anim.animate));
        recyclerView.setLayoutAnimation(controller);

动画笔记

关于动画从来都没有好好的玩过,以下记录一下学习到的。
Android中动画有四种基本动画:

animatedescription
translate位移动画
alpha渐变透明度动画
scale缩放动画
rotate旋转动画

如上面的动画一样,可使用set集合来组合动画

关于插值器,我理解的是 值的一种变化方式。
比如从0-100变化,有的插值器会匀速变有的会加速…

常用插值器:

interpolatordescription
AccelerateInterpolator在动画开始的地方速率变小,然后开始加速变大
DecelerateInterpolator在动画开始的地方变大,然后慢慢变小
AnticipateInterpolator开始的时候慢慢变小,然后突然加速变大
BounceInterpolator变大动画快结束的时候,突然更大变大,然后还原
CycleInterpolator动画循环播放特定的次数,速率改变沿着正弦曲线
LinearInterpolator匀速变大
AccelerateInterpolator向前甩一定值后再回到原来位置

从开始看到别人写的动画时,总是疑惑里面的传值单位,有的是int有的是float有的甚至是百分号,决定总结一下。

translate标签:
0是原来的位置

//单位是int%,0可以省略%
android:fromYDelta="100%"
android:toYDelta="0"

alpha标签:
0-1是从完全透明到完全不透明

//单位是float
android:fromAlpha="0"

rotate标签(需要中心点坐标):
从小到大是顺时针旋转,从大到小是逆时针旋转。

//单位是int
android:fromDegrees="0"

scale标签(需要中心点坐标):

//单位是int%
 android:fromXScale="105%"

另外中心点坐标pivotY的单位是int%

 android:pivotX="50%"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值