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种情况太坑爹了。


    好吧。

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

  • 相关阅读:
    架构师之路(4)详解面向对象 王泽宾 (转)
    输出螺旋矩阵(一)
    输出螺旋矩阵(三)
    excel sheet中数据的快速复制
    计算数组的维数
    不绑定记录集获取datagrid某行某列的内容
    API判断数组是否为空
    将某网页的某框架内容显示在WEBBROWSER中
    输出螺旋矩阵(二)
    快速删除一个包含文件和子文件夹的文件夹
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6944646.html
Copyright © 2011-2022 走看看