android动画分为3种:
Tween Anination: 渐变动画,通过图像变换(平移、缩放、旋转)的动画。
Frame Animation:通过顺序播放图片达到一种画面切换。
Property Animation :属性动画,通过动态地改变对象属性来达到动画效果。
本文先讲解Tween 和 Frame动画,属性动画将在后续进行讲解
Tween动画包含以下四种:alpha 渐变动画;scale 缩放动画;translate 位移转换动画;rotate 旋转动画。
以上四种动画都是通过Animation来实现,可以通过XML和Java语言两种方式进行实现,下面将进行详细说明:
(1)alpha animation
xml方式:在res/anim文件夹下建立alpha_anim.xml文件
<?xml version="1.0"encoding="utf-8"?>
<alpha
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="1"
android:toAlpha="0" >
</alpha>
在需要进行动画的地方使用如下方式进行调用:
Animation alphaAnimation =AnimationUtils.loadAnimation(MainActivity.this, R.anim.alpha_anim);
alphaAnimation.setDuration(1000);
alphaAnimation.setFillAfter(true);
view.startAnimation(alphaAnimation);
该代码会实现view从不透明到100%透明
java方式(实现结果与XML一致):
Animation alphaAnimation = new AlphaAnimation(1f, 0f);
alphaAnimation.setDuration(1000);
alphaAnimation.setFillAfter(true);
v.startAnimation(alphaAnimation);
(2)scale animation
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="1"
android:toXScale="2"
android:fromYScale="1"
android:toYScale="2">
</scale>
该XML会使view从本身大小扩大到2倍大小
(3)translateanimation
<?xml version="1.0"encoding="utf-8"?>
<translatexmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-100%"
android:toXDelta="0"
android:fromYDelta="-100%"
android:toYDelta="0">
</translate>
这将会实现View从屏幕外移动到屏幕中,已左上角坐标为标准
(4)rotateanimation
<?xml version="1.0" encoding="utf-8"?>
<rotatexmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360" />
将会实现view旋转一周,已view的中心为圆心
Frame动画,frame动画播放事先按照顺序配置好的图片,使用方式如下:
<animation-list
xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true" >
<item android:drawable="@drawable/ic_launcher"android:duration="1000"></item>
<item android:drawable="@drawable/image_1"android:duration="1000"></item>
<item android:drawable="@drawable/image_2"android:duration="1000"></item>
<item android:drawable="@drawable/image_3"android:duration="1000"></item>
<item android:drawable="@drawable/image_4"android:duration="1000"></item>
<item android:drawable="@drawable/ic_launcher"android:duration="1000"></item>
</animation-list>
与Tween不同的是,frame_anim.xml需要放到drawable文件夹下,并使用AnimationDrawable。
AnimationDrawableanim = (AnimationDrawable)getResources(). getDrawable(R.drawable.frame_anim);
mImageView.setBackgroundDrawable(anim);
anim.start();