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 效果

这里写图片描述

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 效果

这里写图片描述

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 效果

这里写图片描述

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 效果

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值