Skip to content

添加进入动画

redrain39 edited this page Oct 24, 2019 · 2 revisions

Enter Animation 不同于 RecyclerView 特有的 ItemAnimation ,Enter Animation 表示页面展示时 item 进入页面所呈现的动画。

在 GiraffeHero 中提供了两类 Enter Animation 。

动画类型 说明
ScaleInAnimation item通过缩放的方式进入到页面视图当中
SlideInAnimation item通过平移的方式进入到页面视图当中

动画效果

ScaleInAnimation SlideInAnimation

基础使用

我们在 BaseItemProvider 中提供了 getAnimator() 方法,来获取到 Enter Animation。

@Override
    public BaseInAnimation getAnimator() {
        // example
        BaseInAnimation animation = new ScaleInAnimation(Benchmark.CENTER);
        return animation;
    }

此外,你可以通过 BaseAdapter 的 setNotifyAnimation(boolean isNotifyAnimation) 方法来对进入动画进行刷新控制。
默认为false,表示通过 notifySectionChanged 刷新后不会重现 Enter Animation ,反之,会重复出现。

构造函数

ScaleInAnimation

构造函数 参数说明
ScaleInAnimation(Benchmark benchmark, float from) benchmark表示缩放的参考标准(CENTER-中心点;X-x轴;y-y轴), from表示初始缩放大小
ScaleInAnimation() benchmark为CENTER, from为0.5
ScaleInAnimation(float from) benchmark为CENTER
ScaleInAnimation(Benchmark benchmark) from为0.5

SlideInAnimation

构造函数 参数说明
SlideInAnimation(SlideDirection slideDirection) slideDirection表示平移进入的方向(RIGHT-右边;LEFT-左边;TOP-上面;BOTTOM-下面)
SlideInAnimation() slideDirection为RIGHT

提供的方法

方法 说明
setDuration(long duration) 设置动画的时长
setStartDelay(long startDelay) 设置动画开始的延时
setInterpolator(TimeInterpolator interpolator) 设置动画的插值器
getDuration() 获取动画的时长
getStartDelay() 获取动画开始的延迟
getInterpolator() 获取动画的插值器