美文网首页APP开发实战
APP开发实战86-View动画

APP开发实战86-View动画

作者: xjbclz | 来源:发表于2016-07-19 23:02 被阅读20次

    22.2View动画

    View动画就是很多书籍所说的TweenedAnimation(有人翻译为补间动画),它通过对场景里的对象不断做图像变换(平移、缩放、旋转和透明度)从而产生动画效果,它是一种渐进式动画。动画的作用对象是View,支持四种动画效果,对应Animation的四个子类,具体如下表所示:

    名称

    标签

    子类

    效果

    平移动画

    TranslateAnimation

    移动View

    缩放动画

    ScaleAnimation

    放大或缩小View

    旋转动画

    RotateAnimation

    旋转View

    透明度动画

    AlphaAnimation

    改变View的透明度

    对于View动画,通常也是用XML文件定义动画:

    Android="http://schemas.android.com/apk/res/android"

    android:interpolator="@[package:]anim/interpolator_resource"

    android:shareInterpolator=["true"| "false"] >

    android:fromAlpha="float"

    android:toAlpha="float"/>

    android:fromXScale="float"

    android:toXScale="float"

    android:fromYScale="float"

    android:toYScale="float"

    android:pivotX="float"

    android:pivotY="float"/>

    android:fromXDelta="float"

    android:toXDelta="float"

    android:fromYDelta="float"

    android:toYDelta="float"/>

    android:fromDegrees="float"

    android:toDegrees="float"

    android:pivotX="float"

    android:pivotY="float"/>

    ...

    该文件只能有一个根结点,可以是、、、或。结点可以包含子节点,即可以包含、、、或。

    android:interpolator表示所使用的interpolator,可以是系统自带,也可以是自定义。

    android:shareInterpolator表示是否将该Interpolator共享给子节点。

    android:pivotX和android:pivotY定义的是此次动画变化的轴心位置,默认是左上角,当我们把它们两者都赋值为50%,则变化轴心在中心。

    具体实例:

    android:shareInterpolator="false">

    android:interpolator="@android:anim/accelerate_decelerate_interpolator"

    android:fromXScale="1.0"

    android:toXScale="1.4"

    android:fromYScale="1.0"

    android:toYScale="0.6"

    android:pivotX="50%"

    android:pivotY="50%"

    android:fillAfter="false"

    android:duration="1000"/>

    android:interpolator="@android:anim/accelerate_interpolator"

    android:startOffset="1000">

    android:fromXScale="1.4"

    android:toXScale="0.0"

    android:fromYScale="0.6"

    android:toYScale="0.0"

    android:pivotX="50%"

    android:pivotY="50%"

    android:duration="400"/>

    android:fromDegrees="0"

    android:toDegrees="60"

    android:toYScale="0.0"

    android:pivotX="50%"

    android:pivotY="50%"

    android:duration="400"/>

    andoird:fillAfter:动画结束以后View是否停留在结束位置,true表示停留,false表示不停留。

    startOffset:该属性定义动画推迟多久开始,通过这个属性的设置,我们可以设计一些前后按序发生的动画,当然,除了最后一个发生的动画,其他动画得设置fillAfter为true。

    使用代码:

    AnimationdemoAnim = AnimationUtils.loadAnimation(this, R.anim.demoanim);

    demoAnim.startAnimation(demoanim);

    参考:《Android开发艺术探索》和 http://blog.csdn.net/chziroy/article/details/40456399

    相关文章

      网友评论

        本文标题:APP开发实战86-View动画

        本文链接:https://www.haomeiwen.com/subject/mdcvjttx.html