zoukankan      html  css  js  c++  java
  • Android动画FillEnabled、FillBefore、FillAfter理解

    fillBefore是指动画结束时画面停留在此动画的第一帧; 默认值为true

    fillAfter是指动画结束是画面停留在此动画的最后一帧。默认值为false

    但奇葩的是google还加了个FillEnable 变量。这个变量简直坑爹。。

     

     

    源代码:

    android.view.animation.Animation.java 854

           if ((normalizedTime >= 0.0f || mFillBefore) && (normalizedTime <= 1.0f || mFillAfter)) {

                if (!mStarted) {

                    fireAnimationStart();

                    mStarted = true;

                    if (USE_CLOSEGUARD) {

                        guard.open("cancel or detach or getTransformation");

                    }

                }

     

                if (mFillEnabled) normalizedTime = Math.max(Math.min(normalizedTime, 1.0f), 0.0f);

     

                if (mCycleFlip) {

                    normalizedTime = 1.0f - normalizedTime;

                }

     

                final float interpolatedTime = mInterpolator.getInterpolation(normalizedTime);

                applyTransformation(interpolatedTime, outTransformation);

            }

     

     

    1FillEnable = false 时。FillBefore FillAfter的值将被忽略,此时FillEnable=Flase时和FillBefore = trueFillAfter=true,且FillEnabled=true等价,也就是開始结束都会被fill坑爹。

    。。

    2FillEnable = true时,FillBefore = trueFillAfter = false

    仅仅在第一帧fill

    3FillEnable = true时。FillBefore = falseFillAfter=true

    仅仅在最后一帧fill

    4FillEnable = true时,FillBefore = falseFillAfter=false

    这个控制也比較坑爹,从变量名理解以为仅仅要FillEnable=false就好,其他当FillEnable=false时又回到第1种情况太坑爹了。


    好吧。

    被写这块代码的人彻底搞晕了。。。

  • 相关阅读:
    课后作业-阅读任务-阅读提问-3
    《团对-团队编程项目作业名称-开发环境搭建过程》
    《结对贪吃蛇游戏——测试过程》
    《Android手机便签-项目进度》
    结对编程项目作业2-开发环境搭建过程
    结对编程项目作业2-结对编项目设计文档
    《GIT的使用方法》
    课后作业-阅读任务-阅读提问-1
    个人编程项目
    《自我介绍》
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6944646.html
Copyright © 2011-2022 走看看