zoukankan      html  css  js  c++  java
  • Animation

    android上X、Y上坐标

      手机屏幕的左上角为原心,分别向右和向下为正方向。由此为各种animation方向的标准

    总的来说Animation分为两类:

    • Tweened Animations
      • TranslateAnimation类,移动效果
        • /**
               * Constructor to use when building a TranslateAnimation from code
               * 
               * @param fromXType Specifies how fromXValue should be interpreted. One of
               *        Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or
               *        Animation.RELATIVE_TO_PARENT.
               * @param fromXValue Change in X coordinate to apply at the start of the
               *        animation. This value can either be an absolute number if fromXType
               *        is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.
               * @param toXType Specifies how toXValue should be interpreted. One of
               *        Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or
               *        Animation.RELATIVE_TO_PARENT.
               * @param toXValue Change in X coordinate to apply at the end of the
               *        animation. This value can either be an absolute number if toXType
               *        is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.
               * @param fromYType Specifies how fromYValue should be interpreted. One of
               *        Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or
               *        Animation.RELATIVE_TO_PARENT.
               * @param fromYValue Change in Y coordinate to apply at the start of the
               *        animation. This value can either be an absolute number if fromYType
               *        is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.
               * @param toYType Specifies how toYValue should be interpreted. One of
               *        Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or
               *        Animation.RELATIVE_TO_PARENT.
               * @param toYValue Change in Y coordinate to apply at the end of the
               *        animation. This value can either be an absolute number if toYType
               *        is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.
               */
              public TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue,
                      int fromYType, float fromYValue, int toYType, float toYValue) {
          
                  mFromXValue = fromXValue;
                  mToXValue = toXValue;
                  mFromYValue = fromYValue;
                  mToYValue = toYValue;
          
                  mFromXType = fromXType;
                  mToXType = toXType;
                  mFromYType = fromYType;
                  mToYType = toYType;
              }
      • RotateAnimation类,旋转效果。
        • /**
               * Constructor to use when building a RotateAnimation from code
               * 
               * @param fromDegrees Rotation offset to apply at the start of the
               *        animation.
               * 
               * @param toDegrees Rotation offset to apply at the end of the animation.
               * 
               * @param pivotX The X coordinate of the point about which the object is
               *        being rotated, specified as an absolute number where 0 is the left
               *        edge.
               * @param pivotY The Y coordinate of the point about which the object is
               *        being rotated, specified as an absolute number where 0 is the top
               *        edge.
               */
             //旋转表示一个控件绕着一个点做旋转(平面旋转)。这个旋转是围绕一个点,而这个点是由百分比决定的,比如相对于自身时x为0.5,y为0.5,那么这个点就是该控件的中心;如果x为1,y为1,那么这个点就是控件的右下角;相对父控件时x为0.5,y为0.5,那么这个点就是该父控件的中心。
          public RotateAnimation(float fromDegrees, float toDegrees, float pivotX, float pivotY) { mFromDegrees = fromDegrees; mToDegrees = toDegrees; mPivotXType = ABSOLUTE; mPivotYType = ABSOLUTE; mPivotXValue = pivotX; mPivotYValue = pivotY; initializePivotPoint(); }
      • ScaleAnimation类,缩放效果
        • /**
               * Constructor to use when building a ScaleAnimation from code
               * 
               * @param fromX Horizontal scaling factor to apply at the start of the
               *        animation
               * @param toX Horizontal scaling factor to apply at the end of the animation
               * @param fromY Vertical scaling factor to apply at the start of the
               *        animation
               * @param toY Vertical scaling factor to apply at the end of the animation
               */
              public ScaleAnimation(float fromX, float toX, float fromY, float toY) {
                  mResources = null;
                  mFromX = fromX;
                  mToX = toX;
                  mFromY = fromY;
                  mToY = toY;
                  mPivotX = 0;
                  mPivotY = 0;
              }
      • AlphaAnimation类,透明度变化效果
        •  /**
               * Constructor to use when building an AlphaAnimation from code
               * 
               * @param fromAlpha Starting alpha value for the animation, where 1.0 means
               *        fully opaque and 0.0 means fully transparent.
               * @param toAlpha Ending alpha value for the animation.
               */
          //
          fromAlpha:开始时刻的透明度,取值范围0~1。
               //toAlpha:结束时刻的透明度,取值范围0~1。
              public AlphaAnimation(float fromAlpha, float toAlpha) {
                  mFromAlpha = fromAlpha;
                  mToAlpha = toAlpha;
              }
    • Frame-by-Frame Animations,创建一个Drawable序列,通过按照一定的顺序轮换达到动画的效果

    四个TweenAnimation的通用方法

    • setDuration(long durationMills) 设置动画的持续时间
    • setFillAfter(Boolean fillAfter) ,如果设为true,则动画执行结束完,控件停留在执行结束的状态
    • setFillBefore(Boolean fillAfter),如果设为true,则动画执行结束后,控件回到动画执行前的状态
    • setStartOffSet(long startOffSet) ,设置动画开始前等待的时间
    • setRepeatCount(int repeatCount),设置动画重复的次数

    当然以上的动画都是单个的效果,如果想要混合两个以上的动画效果,就要用到AnimationSet

  • 相关阅读:
    Java-Class-C:com.alibaba.fastjosn.JSON.java
    兆芯笔试题(2015)找反复数最多的字母的数量以及位置
    获得文件属性的函数调用实例
    错了:用流量能够放肆,有wifi则要节制
    为什么会找不到D层文件?
    Cocos2d-x3.0游戏实例之《别救我》第六篇——从代码中获取UI控件
    Add Binary
    【iOS开发之Objective-C】书签管理器项目
    UVa 11732 strcmp() Anyone?
    【打CF,学算法——二星级】Codeforces Round #313 (Div. 2) B. Gerald is into Art(水题)
  • 原文地址:https://www.cnblogs.com/could-deng/p/5030802.html
Copyright © 2011-2022 走看看