android动画之补间动画

动画分类

Alt

补间动画

补间动画数据View动画,总共有四种操作:平移,缩放,旋转和Alpha动画
补间动画是通过改变View的显示位置,实现的动画,View的实际位置没有发生改变。比如一个Button[0,0,100,50]通过平移到Button[500,500,600,550],实际的响应点击状态的位置还是[0,0,100,50]。

动画分类细则

名称XML标签子类效果
平移动画<translate>TranslateAnimation移动View
缩放动画<scale>ScaleAnimation放大或者缩小View
旋转动画<rotate>RotateAnimation旋转View
透明动画<alpha>AlphaAnimation改变View的透明度

在这里插入图片描述
四种动画类都是Animation的子类,其中AnimationSet是动画集合,可以把单一的动画组合起来,对应的标签是<set>

平移动画 translate

字段意义
android:fromXDelta表示x的起始值
android:fromYDelta表示y的起始值
android:toXDelta表示x的结束值
android:toYDelta表示y的结束值
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0"
    android:fromYDelta="0"
    android:toXDelta="0"
    android:toYDelta="-200">
</translate>
原点向上平移
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0"
    android:fromYDelta="0"
    android:toXDelta="200"
    android:toYDelta="200">
</translate>
原点向右下平移
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0"
    android:fromYDelta="-200"
    android:toXDelta="0"
    android:toYDelta="0">
</translate>
向下平移到原点

在这里插入图片描述

缩放动画 scale

字段意义
android:fromXScale水平缩放的起始值
android:fromYScale竖直缩放的起始值
android:pivotX缩放的X坐标
android:pivotY缩放的Y坐标
android:toXScale水平缩放的结束值
android:toYScale竖直缩放的结束
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:pivotX="0"
    android:pivotY="0"
    android:toXScale="2.0"
    android:toYScale="1.0">
</scale>
原点横向放大
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:pivotX="0"
    android:pivotY="0"
    android:toXScale="2.0"
    android:toYScale="2.0">
</scale>
原点放大
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:pivotX="100"
    android:pivotY="100"
    android:toXScale="0.5"
    android:toYScale="0.5">
</scale>
非原点缩小

缩放动画

旋转动画 rotate

字段意义
android:fromDegrees旋转开始的角度
android:toDegrees旋转结束的角度
android:pivotX旋转的X坐标
android:pivotY旋转的Y坐标
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:pivotX="0"
    android:pivotY="0"
    android:toDegrees="360">
</rotate>
顺时针旋转360
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:pivotX="0"
    android:pivotY="0"
    android:toDegrees="-720">
</rotate>、
逆时针旋转720

在这里插入图片描述

透明度动画 alpha

字段意义
android:fromAlpha表示透明度的起始值
android:toAlpha表示透明度的结束值
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="0"
    android:toAlpha="1">
</alpha>
显示
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="1"
    android:toAlpha="0">
</alpha>
隐藏

在这里插入图片描述

动画组合 set

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="3000"
    android:fillAfter="true"
    android:shareInterpolator="@android:anim/accelerate_decelerate_interpolator">
    <!--透明度从无到有-->
    <alpha
        android:fromAlpha="0"
        android:toAlpha="1" />

    <!--旋转两圈半-->
    <rotate
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toDegrees="900" />

    <!--放大三倍-->
    <scale
        android:fromXScale="0"
        android:fromYScale="0"
        android:pivotX="0%"
        android:pivotY="100%"
        android:toXScale="3"
        android:toYScale="3" />

    <!--平移至中间位置-->
    <translate
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="-50%p"
        android:toYDelta="50%p" />
</set>

在这里插入图片描述

代码地址

Github

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值