2014-11-6Android学习------布局处理(九)animation动画的属性解释--------动画Animation学习篇

来源:互联网 发布:证券从业资格题库软件 编辑:程序博客网 时间:2024/06/06 04:38

写一篇文章很辛苦啊!!!

转载请注明,联系请邮件nlp30508@qq.com


我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的源码 百度搜就知道很多下载的地方  网上源码的名字叫:activity切换特效.zip  我的博客写的比较乱,如果本篇文章没有看懂,

请先看上篇文章,地址:http://blog.csdn.net/u014737138/article/details/40859913


关于动画我们先要了解一些知识点:

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

关于动画的类:

1 AlphaAnimation          //渐变透明度渐变效果2 ScaleAnimation          //渐变尺寸伸缩渐变效果3 TranslateAnimation    //画面转换位置移动渐变效果4 RotateAnimation       // 画面转移旋转渐变效果


activity切换效果有哪些呢?主要指的是当前的activity以一种什么样的形式展现在用户的面前,就像我们做PPT的时候图片会以各种方式出现,有下面这几种:

一。arrays.xml文件

<?xml version="1.0" encoding="utf-8"?><resources>    <string-array name="anim_type">        <item>淡入淡出效果</item>        <item>放大淡出效果</item>        <item>转动淡出效果1</item>        <item>转动淡出效果2</item>        <item>左上角展开淡出效果</item>        <item>压缩变小淡出效果</item>        <item>右往左推出效果</item>        <item>下往上推出效果</item>        <item>左右交错效果</item>        <item>放大淡出效果</item>        <item>缩小效果</item>        <item>上下交错效果</item>    </string-array></resources>
二。每种形式我们都可以定义在xml文件中:

<?xml version="1.0" encoding="utf-8"?><!-- android:duration="@android:integer/config_longAnimTime" --><alpha xmlns:android="http://schemas.android.com/apk/res/android"       android:interpolator="@android:anim/accelerate_interpolator"       android:fromAlpha="0.0" android:toAlpha="1.0"       android:duration="2000" />
属性解释:

<!-- 透明度控制动画效果 alpha        浮点型值:        fromAlpha 属性为动画起始时透明度        toAlpha   属性为动画结束时透明度        说明:         0.0表示完全透明        1.0表示完全不透明                     以上值取0.0-1.0之间的float数据类型的数字                长整型值:        duration  属性为动画持续时间        说明:                          时间以毫秒为单位-->

<!-- android:interpolator   Interpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画有这几种效果:accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。AccelerateDecelerateInterpolator 在动画开始与结束的地方速率改变比较慢,在中间的时候加速AccelerateInterpolator  在动画开始的地方速率改变比较慢,然后开始加速AnticipateInterpolator 开始的时候向后然后向前甩AnticipateOvershootInterpolator 开始的时候向后然后向前甩一定值后返回最后的值BounceInterpolator   动画结束的时候弹起CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线DecelerateInterpolator 在动画开始的地方快然后慢LinearInterpolator   以常量速率改变OvershootInterpolator    向前甩一定值后再回到原来位置-->

interpolator指定一个动画的插入器accelerate_decelerate_interpolator加速-减速 动画插入器accelerate_interpolator加速-动画插入器decelerate_interpolator减速- 动画插入器


淡入淡出效果:alpha:淡出(alpha_out)和淡入(alpaha_in)

<?xml version="1.0" encoding="utf-8"?><!-- android:duration="@android:integer/config_mediumAnimTime" --><set xmlns:android="http://schemas.android.com/apk/res/android" ><alpha android:fromAlpha="1.0" android:toAlpha="0" android:duration="2000"/> </set>
翻转:(转动)scale:
<?xml version="1.0" encoding="utf-8"?><!-- android:duration="@android:integer/config_mediumAnimTime" --><set xmlns:android="http://schemas.android.com/apk/res/android"><scale android:interpolator="@android:anim/accelerate_decelerate_interpolator"android:fromXScale="0.0" android:toXScale="1.4" android:fromYScale="0.0"android:toYScale="1.4" android:pivotX="50%" android:pivotY="50%"android:fillAfter="false" android:duration="2000" /></set>

属性解释:

<!--fromXScale 起始时x坐标的尺寸,设置为1.0说明是整个图片x轴的长度 toXScale   结束时x坐标的尺寸,设置为0.0说明整个图片x轴完全收缩到无 fromYScale 起始时y坐标的尺寸,设置为1.0说明是整个图片y轴的长度 toYScale   结束时y坐标的尺寸,设置为1.0说明是在收缩时y轴的长度保持不变 那么他们的变化都是先对于某一点来变化的,因此pivotX和pivotY就是确定这个点的位置。 在一个数轴上(原点为图片的左上角,x轴和y轴的射线分别是向右和向下): pivotX="50%" 说明是以图片本身的一半作为x轴的坐标; pivotY="50%" 说明是以图片本身的一半作为y轴的坐标; 所以圆心点的坐标就是(0.5x,0.5y)。(x y是原图片的长和高) 此效果就是以这个点的y轴为轴,x轴不断减小到0。 duration 是设置的动画执行时间 -->

rotate:

<?xml version="1.0" encoding="utf-8"?><!-- android:duration="@android:integer/config_mediumAnimTime" --><set xmlns:android="http://schemas.android.com/apk/res/android"android:shareInterpolator="false"><scale android:interpolator="@android:res/anim/accelerate_decelerate_interpolator"android:fromXScale="0.0" android:toXScale="1.0" android:fromYScale="0.0"android:toYScale="1.0" android:pivotX="50%" android:pivotY="50%"android:duration="2000" android:repeatCount="0" android:startOffset="20"></scale><rotate android:interpolator="@android:anim/accelerate_decelerate_interpolator"android:fromDegrees="0" android:toDegrees="+355" android:pivotX="50%"android:pivotY="50%" android:duration="2000" /></set>

属性解释:

<!--fromDegrees为动画起始时物件的角度说明当角度为负数——表示逆时针旋转当角度为正数——表示顺时针旋转(负数from——to正数:顺时针旋转)(负数from——to负数:逆时针旋转)(正数from——to正数:顺时针旋转)(正数from——to负数:逆时针旋转)toDegrees属性为动画结束时物件旋转的角度 可以大于360度pivotXpivotY为动画相对于物件的X、Y坐标的开始位属性值说明:50%为物件的X或Y方向坐标上的中点位置,相对于自身。”50“代表绝对位置,“50%p”这代表相对于父控件来说。-->

定义三种效果放在一起:

<?xml version="1.0" encoding="utf-8"?><!-- android:duration="@android:integer/config_mediumAnimTime" --><set xmlns:android="http://schemas.android.com/apk/res/android"android:shareInterpolator="false"><scale android:interpolator="@android:res/anim/accelerate_decelerate_interpolator"android:fromXScale="0.0" android:toXScale="1.0" android:fromYScale="0.0"android:toYScale="1.0" android:pivotX="50%" android:pivotY="50%"android:duration="2000"></scale><translate android:interpolator="@android:anim/accelerate_decelerate_interpolator"android:fromXDelta="120" android:toXDelta="30" android:fromYDelta="30"android:toYDelta="250" android:duration="2000" /><rotate android:interpolator="@android:anim/accelerate_decelerate_interpolator"android:fromDegrees="0" android:toDegrees="+355" android:pivotX="50%"android:pivotY="50%" android:duration="2000" /></set>

属性translate解释:

fromXDelta为动画起始时 X坐标上的位置toXDelta为动画结束时 X坐标上的位置fromYDelta为动画起始时 Y坐标上的位置toYDelta为动画结束时 Y坐标上的位置

两者结合:

<?xml version="1.0" encoding="utf-8"?><!-- android:duration="@android:integer/config_mediumAnimTime" --><set xmlns:android="http://schemas.android.com/apk/res/android"android:shareInterpolator="false"><scale android:interpolator="@android:res/anim/accelerate_decelerate_interpolator"android:fromXScale="0.0" android:toXScale="1.0" android:fromYScale="0.0"android:toYScale="1.0" android:pivotX="0" android:pivotY="0"android:duration="2000" android:repeatCount="0" android:startOffset="0"></scale><translate android:fromXDelta="0" android:toXDelta="0"android:fromYDelta="0" android:toYDelta="0" android:duration="2000" /></set>

属性解释:android:startOffset

可以通过设置Animation的startOffset来控制Animation的运行顺序——同时或按顺序运行动画。默认情况下,Animation是同时开始的,但可以通过设置startOffset属性来指定动画在*ms后开始运行。

<!--Duration[long]属性为动画持续时间 时间以毫秒为单位fillAfter [boolean]当设置为true ,该动画转化在动画结束后被应用fillBefore[boolean]当设置为true ,该动画转化在动画开始前被应用interpolator指定一个动画的插入器repeatCount[int]动画的重复次数RepeatMode[int]定义重复的行为1:重新开始  2:plays backwardstartOffset[long]动画之间的时间间隔,从上次动画停多少时间开始执行下个动画zAdjustment[int]定义动画的Z Order的改变0:保持Z Order不变 1:保持在最上层 -1:保持在最下层-->

<?xml version="1.0" encoding="UTF-8"?><set android:interpolator="@android:anim/accelerate_interpolator"xmlns:android="http://schemas.android.com/apk/res/android"><translate android:duration="2000"android:fromYDelta="0.0" android:toYDelta="100.0%p" /></set>

其他的就不再介绍了,可以使用这四种

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

组合得出自己要的那种效果就可以了。



0 0
原创粉丝点击