Android动画详解(二) 补间动画

1、 补间动画说明

定义好动画的起始帧和结束帧以及播放时长,动画过程中的帧由计算机计算得出。补间动画又可以分为四种形式,分别是 alpha(透明度变化),translate(位移),scale(缩放大小),rotate(旋转)。

2、实现方式

2.1 创建目录res/anim,在res/anim目录下创建文件anim.xml

2.2 alpha动画(透明度)

2.2.1 xml配置文件

fromAlpha 动画开始透明度
toAlpha 动画结束透明度
透明度1.0为完全不透明,0.0为完全透明

<alpha
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="1.0"
    android:toAlpha="0.0">
alpha>

2.2.2 代码调用

Animation animation = AnimationUtils.loadAnimation(AnimationActivity.this,R.anim.alpha_anim);
animation.setDuration(4000);
anim_iv.startAnimation(animation);

2.2.3 效果

Android动画详解(二) 补间动画_第1张图片

2.3 translate动画(位移)

2.3.1 xml配置文件

fromXDelta位移起始X轴坐标
toXDelta位移结束X轴坐标
fromYDelta位移起始Y轴坐标
toYDelta位移结束Y轴坐标

<translate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0"
    android:toXDelta="700"
    android:fromYDelta="0"
    android:toYDelta="0" >
translate>

2.3.2 效果

Android动画详解(二) 补间动画_第2张图片

2.4 scale动画(缩放)

2.4.1 xml配置文件

fromXScale X轴起始缩放比例
fromYScale Y轴起始缩放比例
toXScale X轴结束缩放比例
toYScale Y轴结束缩放比例
pivotX 缩放中心X轴坐标
pivotY 缩放中心Y轴坐标

<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="0.0"
    android:fromYScale="0.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="1.0"
    android:toYScale="1.0">
scale>

2.4.2 效果

Android动画详解(二) 补间动画_第3张图片

2.5 rotate动画(旋转)

2.5.1 xml配置文件

fromDegrees旋转起始角度
fromDegrees旋转结束角度
pivotX旋转中心X轴坐标
pivotY旋转中心Y轴坐标

<rotate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:toDegrees="360"
    android:pivotX="70"
    android:pivotY="70" >
rotate>

2.5.2 效果

2.6 pivot属性说明

pivot属性在rotate动画和scale动画中出现,这2个动画发生时View都是以固定的点位进行动画,对这一固定点位的描述需要使用pivot属性。

pivotX的取值 含义
10 距离动画所在view自身左边缘10像素
10% 距离动画所在view自身左边整个View宽度的10%
10%p 距离动画所在view父控件左边整个View宽度的10%

2.7 使用set 标签将多个动画组合

2.7.1 xml配置同时实现透明变化——位移——缩放——旋转

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:duration="2000">
    alpha>
    <translate
        android:fromXDelta="0"
        android:toXDelta="400"
        android:fromYDelta="0"
        android:toYDelta="500"
        android:duration="4000">
    translate>
    <rotate
        android:fromDegrees="0"
        android:toDegrees="360"
        android:pivotX="0%"
        android:pivotY="0%"
        android:duration="2000">
    rotate>
    <scale
        android:fromXScale="0.0"
        android:fromYScale="0.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0"
        android:duration="2000">
    scale>
set>

2.7.2 效果

Android动画详解(二) 补间动画_第4张图片

你可能感兴趣的:(android,android,动画)