Android学习笔记之动画简介

来源:互联网 发布:天拓网络 编辑:程序博客网 时间:2024/04/30 19:19

由于在本科期间对动画产生过兴趣,利用Adobe Flash制作过一些小的动态图,正好在学Android动画制作,所以来记录一下学习笔记。目前,在Android中,有以下三种动画模式:

1>Frame Animation:逐帧动画,通过利用每张静态图片在人眼的“视觉暂留”,以达到动画目的,就像一开始的动画片一样,将每一张图片合订,在随着页码的翻动,显示给人们的感觉就像是动起来一样。配置逐帧动画,即在drawable文件夹下创建Xml文件,然后在<animation-list.../>元素中逐个配置<item>元素,制定各个图片的持续时间。

具体配置如下:

<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android"    android:oneshot="false">//循环属性    <item        android:drawable="@drawable/pic1"//文件资源        android:duration="200"/>//设置持续时间    <item        android:drawable="@drawable/pic2"        android:duration="200"/>    ...</animation-list>

然后在Activity中设置ImageView监听即可。

2>Tween Animation:补间动画,通过对图像进行基本处理,如旋转、拉伸等操作,不需要定义每一张图像,关键在于动画的开始与结束,同时制定动画执行时间。该动画模式主要可以实现渐变alpha、旋转rotate、伸缩scale、位移translate四种效果。

(1)alpha.xml

<alpha        android:duration="1000"//动画持续时间,ms为单位        android:fromAlpha="0.5"//动画起始透明度        android:toAlpha="1.0"/>//动画结束透明度

(2)rotate.xml

<rotate        android:duration="1000"        android:fromDegrees="0"//动画起始角度        android:pivotX="50%"//动画相对于物件的X坐标的开始位置,从0%到100%中取值        android:pivotY="50%"//动画相对于物件的Y坐标的开始位置        android:toDegrees="+180"/>//动画结束角度
(3)scale.xml
<scale        android:duration="1000"        android:fillAfter="true"//表示该动画在结束后被调用        android:fromXScale="1.0"//0表示收缩到没有,1.0表示正常无收缩,小于1.0收缩,反之,放大        android:fromYScale="1.0"        android:pivoX="50%"        android:pivoY="50%"        android:toXScale="0.5"        android:toYScale="0.5" />
(4)translate.xml
<transitate        android:duration="1000"        android:fromXDelta="0"//动画起始X坐标的位置        android:fromYDelta="0"        android:toXDelta="180"        android:toYDelta="180" />
以上基本可以实现动画效果,但是对于到底需要插入多少张图片,中间该保留多长时间,都需要自己去计算,因此,Android提供了Interpolator来控制计算整个动画需要的图像的数目和位置,从而实现动画的加速、减速、匀速等。

Interpolator接口的常用实现类有:AccelerateDecelerateInterpolator(开始、结束时减速,中间加速)、AccelerateInterpolator(开始慢速、然后加速)、CycleInterpolator(循环播放指定次数。速度按正弦变化)、DecelerateInterpolator(开始较快,然后减速)、LinearInterpolator(匀速变化)。

3>Property Animation,属性动画,利用对象的基本属性变化形成动画,如Butten的位置和大小变化。


0 0
原创粉丝点击