Android动画知识回顾--补间动画(一)

本文详细解析了Android动画中alpha、scale、translate、rotate等动画效果的XML属性及其用法,包括透明度、尺寸伸缩、位置移动和旋转动画的参数配置,以及动画的持续时间、重复次数和类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先感谢启舰大神,本篇主要是对学习Android自定义控件三部曲过程中知识的回顾。

  • 从Animation类继承的属性

android:duration      动画持续时间,以毫秒为单位 
android:fillAfter     如果设置为true,控件动画结束时,将保持动画最后时的状态
android:fillBefore    如果设置为true,控件动画结束时,还原到开始动画前的状态
android:fillEnabled   与android:fillBefore 效果相同,都是在动画结束时,将控件还原到初始化状态
android:repeatCount   重复次数
android:repeatMode    重复类型,有reverse和restart两个值,reverse表示倒序回放,restart表示重放
android:interpolator  设定插值器,其实就是指定的动作效果,比如弹跳效果等

注意:必须与repeatCount一起使用才能看到效果。因为这里的意义是重复的类型,即回放时的动作。 

  • alpha、scale、translate、rotate、set的xml属性及用法 

alpha渐变透明度动画效果
scale渐变尺寸伸缩动画效果
translate画面转换位置移动动画效果
rotate画面转移旋转动画效果
  • alpha属性

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="1.0"     //动画开始的透明度,从0.0到1.0 、0.0表示全透明,1.0表示完全不透明
    android:toAlpha="0.1"       //动画结束时的透明度,也是从0.0、1.0 ,与fromAlpha属性相反
    android:duration="3000"     //动画执行的时间
    android:fillBefore="true">  //如果设置为true,控件动画结束时,还原到开始动画前的状态

</alpha>
  • scale属性
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="0.0"  // 起始的X方向上相对自身的缩放比例,浮点值
    android:toXScale="1.4"    // 结尾的X方向上相对自身的缩放比例,浮点值
    android:fromYScale="0.0"  // 起始的Y方向上相对自身的缩放比例,浮点值
    android:toYScale="1.4"    // 结尾的Y方向上相对自身的缩放比例,浮点值
    android:pivotX="50"       // 缩放起点X轴坐标,可以是数值、百分数、百分数p 三种样式
    android:pivotY="50"       // 缩放起点Y轴坐标,取值及意义跟android:pivotX一样
    android:duration="700">  

</scale>

注意:pivotX和pivotY的属性中三种数值的意义各有不同,比如 50、50%、 50%p,当为数值时,表示在当前View的左上角,即原点处加上50px,做为起始缩放点; 如果是50%,表示在当前控件的左上角加上自己宽度的50%做为起始点;如果是50%p, 那么就是表示在当前的左上角加上父控件宽度的50%做为起始点x轴坐标。

  • translate属性

<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0"  // 起始点X轴坐标,可以是数值、百分数、百分数p 三种样式
    android:toXDelta="-80"  // 起始点Y轴从标,可以是数值、百分数、百分数p 三种样式
    android:fromYDelta="0"  // 结束点X轴坐标
    android:toYDelta="-80"  // 结束点Y轴坐标
    android:duration="2000"
    android:fillBefore="true">

</translate>
  • rotate属性

<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"   // 开始旋转的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数
    android:toDegrees="-650"  // 结束时旋转到的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数
    android:pivotY="50%"      // 缩放起点X轴坐标,可以是数值、百分数、百分数p 三种样式    
    android:pivotX="50%"      // 缩放起点Y轴坐标,可以是数值、百分数、百分数p 三种样式
    android:duration="3000"
    android:fillAfter="true">

</rotate>
  • set属性

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="3000"
    android:fillAfter="true">
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />

    <scale
        android:fromXScale="0.0"
        android:toXScale="1.4"
        android:fromYScale="0.0"
        android:toYScale="1.4"
        android:pivotX="50%"
        android:pivotY="50%" />

    <rotate
        android:fromDegrees="0"
        android:toDegrees="720"
        android:pivotX="50%"
        android:pivotY="50%" />
</set>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值