动画在我们的开发中是一个必须要接触的东西,这里从动画的基本使用到进阶分析系统的做下笔记,动画这里我们统一的归类为View动画和属性动画。View动画里面还包括一个特殊点的属性动画,今天看Android的官方文档下面介绍又有了了SpringAnimation类似实现View的弹簧效果的动画,在后面会进行介绍。
View动画
View动画作用在View上面,支持四种动画效果,分别是平移,缩放,旋转,透明度动画。另外帧动画的形式和他们不同。会分开记录。
View动画分类
View动画的四种变换对应这Animation的四个子类:TranslateAnimation,RotateAnimation,ScaleAnimation,AlphaAnimation。这四种动画的Java类和XML形式定义如下表所示:
名称 | 标签 | 子类 | 效果 |
---|---|---|---|
平移动画 | < translate > | TranslateAnimation | 移动View |
旋转动画 | < rotate > | RotateAnimation | 旋转View |
缩放动画 | < scale > | ScaleAnimation | 缩放View |
透明度动画 | < alpha > | AlphaAnimation | 改变透明度View透明度 |
如果我们使用XML来定义View动画,把它放在目录res/anim目录下面。View动画的描述文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="["true"|"false"]"
android:interpolator="@[package:]anim/interpolator_resource">
<translate android:fromXDelta="float"
android:fromYDelta="float"
android:toXDelta="float"
android:toYDelta="float"/>
<rotate android:fromDegrees="float"
android:toDegrees="float"
android:pivotX="float"
android:pivotY="float"/>
<scale android:fromXScale="float"
android:fromYScale="float"
android:toXScale="float"
android:toYScale="float"/>
<alpha android:fromAlpha="float"
android:toAlpha="float"/>
</set>
每个参数的意义咋们就记录一下set标签下面的属性:
- android:interpolator–动画采用的插值器。通俗的来说这个影响动画播放的速度,可以指定一个速度来播放该动画。
- android:shareInterpolator–字面意思共享插值器,指集合下面的View是否都遵循同一个插值器。不设置那么子动画就自己指定或者使用默认值。
通过代码应用XML动画
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.translate_test);
mButton.startAnimation(animation);
通过代码创建使用动画
Animation animation = new TranslateAnimation(0,100,0,0);
animation.setDuration(500);
mButton.startAnimation(animation);