安卓四种动画Animation详解

来源:互联网 发布:手机怎么登淘宝电脑版 编辑:程序博客网 时间:2024/06/05 20:45

   我们都知道在安卓的app中会实现一些很酷炫的效果,如:拍照时的弹框,游戏基础的一些动画....................

   其实安卓系统基本基于四个类进行二次开发:

AlphaAnimation渐变透明度动画效果ScaleAnimation渐变尺寸伸缩动画效果TranslateAnimation画面转换位置移动动画效果RotateAnimation画面转移旋转动画效果  这些基本上都是在java文件里写的过程可能比较复杂,当然我们还可以在XML文件里写。在module(eclipse对应你的项目)里的res文件夹下新建个anim(一定要是这个名字),然后再建个xx.xml(文件名自己定义)文件。

   根目录是set,子目录有四个(可同时建立一个或者多个)。

alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画效果

    详细功能如下面代码

<?xml version="1.0" encoding="utf-8"?><!-- android:toXDelta="100%"表示自身的100%,也就是从View自己的位置开始。 android:toXDelta="80%p"表示父层View的80%,是以它父层View为参照的。 android:fromXDelta="320"  屏幕X轴的起始像素坐标 android:interpolator     指定动画插入器1.AccelerateDecelerateInterpolator:在动画开始与结束的地方速率改变比较慢,在中间的时候速率快。2.AccelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始加速3.CycleInterpolator:动画循环播放特定的次数,速率改变沿着正弦曲线4.DecelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始减速5.LinearInterpolator:动画以均匀的速率改变 android:shareInterpolator   如果不想共享一个interpolator, 则设置"false",并且需要在每一个动画效果处添加interpolator。--><set xmlns:android="http://schemas.android.com/apk/res/android"     android:shareInterpolator="false">    <!--    fromAlpha:开始时透明度    toAlpha: 结束时透明度    duration:动画持续时间 -->    <alpha        android:duration="500"        android:fromAlpha="0.0"        android:interpolator="@android:anim/decelerate_interpolator"        android:toAlpha="1.0"/>    <!--      fromDegrees   动画开始时的角度      toDegrees     动画结束时物件的旋转角度,正代表顺时针      pivotX    属性为动画相对于物件的X坐标的开始位置  值都为50%就是以控件中心原位旋转      pivotY    属性为动画相对于物件的Y坐标的开始位置    -->    <rotate        android:duration="10000"        android:fromDegrees="300"        android:interpolator="@android:anim/accelerate_decelerate_interpolator"        android:pivotX="10%"        android:pivotY="100%"        android:toDegrees="-360"/>    <!--fromXDelta,fromYDelta       起始时X,Y座标,屏幕右下角的座标是X:320,Y:480toXDelta, toYDelta      动画结束时X,Y的座标 fromXScale,fromYScale,         动画开始前X,Y的缩放,0.0为不显示,  1.0为正常大小toXScale,toYScale,          动画最终缩放的倍数, 1.0为正常大小,大于1.0放大pivotX,  pivotY         动画起始位置,相对于屏幕的百分比,两个都为50%表示动画从屏幕中间开始startOffset:动画多次执行的间隔时间,如果只执行一次,当使用该方法设置后,将延迟一定的时间再启动动画。单位毫秒duration:一次动画效果消耗的时间,单位毫秒,值越小动画速度越快repeatCount:动画重复的计数,动画将会执行该值+1次,如果想让动画不停止就设为-1。repeatMode:动画重复的模式,reverse为反向,当第偶次执行时,动画方向会相反。restart为重新执行,方向不变 -->    <scale        android:duration="10000"        android:fromXScale="0.0"        android:fromYScale="0.0"        android:interpolator="@android:anim/linear_interpolator"        android:pivotX="50%"        android:pivotY="50%"        android:repeatCount="1"        android:repeatMode="reverse"        android:startOffset="0"        android:toXScale="1.5"        android:toYScale="1.5"/>    <translate        android:duration="10000"        android:fromXDelta="320"        android:fromYDelta="480"        android:interpolator="@android:anim/cycle_interpolator"        android:toXDelta="0"        android:toYDelta="0"/></set>


原创粉丝点击