android动画系列(一):动画基础

来源:互联网 发布:淘宝申述不成功怎么办 编辑:程序博客网 时间:2024/04/30 01:35

动画基础

参考 传统动画与view动画的差别
view动画基础

view动画

view动画的分类及基本使用

分为 translate,rotate,alpha,scale
以下是几种基本动画及其通用选项

<set android:shareInterpolator="false">    <scale        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="700" />    <set android:interpolator="@android:anim/decelerate_interpolator">        <scale           android:fromXScale="1.4"           android:toXScale="0.0"           android:fromYScale="0.6"           android:toYScale="0.0"           android:pivotX="50%"           android:pivotY="50%"           android:startOffset="700"           android:duration="400"           android:fillBefore="false" />        <rotate           android:fromDegrees="0"           android:toDegrees="-45"           android:toYScale="0.0"           android:pivotX="50%"           android:pivotY="50%"           android:startOffset="700"           android:duration="400" />    </set></set>

有关属性的说明
- 如果想要他们按顺序来运行的话,就需要加上一个startOffset属性。否则默认同时进行。
- fillBefore是指动画结束时画面停留在此动画的第一帧; 默认值为true
- fillAfter是指动画结束是画面停留在此动画的最后一帧。默认值为false

属性设置的学问

  1. 对于一些属性的设置如pivot,如果是 50%,那么他就是针对于自己,如果是50,那么就是针对于父控件

    Some values, such as pivotX, can be specified relative to the object itself or relative to the parent. Be sure to use the proper format for what you want (“50” for 50% relative to the parent, or “50%” for 50% relative to itself).

  2. alpha属性从0.0-1.0 0.0表示完全透明,1.0表示完全不透明
    scale属性也一样。

  3. 如果是translate,对于fromXDelta之类的属性可以取浮点数,数字%,数字%p三种
    浮点数是绝对的,是原来的相对于现在的属性的像素值
    数字%是相对的,相对于原来的自己
    数字%p也是相对的,相对于父控件

  4. rotate也一样
    这两个属性也有三种表示方式,但是X轴都是相对方向都是Left,Y轴都是相对于Top
    浮点数、num%、num%p;
    数字方式代表相对于自身左边缘的像素值,
    num%方式代表相对于自身左边缘或顶边缘的百分比,
    num%p方式代表相对于父容器的左边缘或顶边缘的百分比。

插值器的使用

可以通过插值器来控制动画与时间的关系。
android:interpolator(插值器)
应用于动画的插值器。该值必须是一个指定了插值器资源的引用(不是一个插值器的类名),在平台中有缺省的插值器资源可以使用,或者你可以创建自己的插值器资源,可以看下面关于插值器的讨论。
android:shareInterpolator
Boolean值, true:代表在所有的子元素中共享同一个插值器
上面两个属性都应该在xml中定义

view动画的使用

ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage);Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);spaceshipImage.startAnimation(hyperspaceJumpAnimation);

Drawable Animation

如果动画是由多个图片按一定顺序和时间组织起来的话,就可以使用这种animation。
可以在xml中定义。如果把oneshot属性记为false的话,就可以一直执行下去,对于那种无限循环并且有几种不同的帧的都合适不过了。

0 0
原创粉丝点击