Android动画学习(二)之补间动画实现

Android动画学习(二)之补间动画实现

补间动画概述

概述
补间动画就是程序员只需要指定动画开始、结束等属性,而动画的变换过程由系统计算并补齐的动画
Tween 动画,可以使视图组件移动、放大、缩小以及产生透明度的变化。
特点
补间动画是只能够作用在View上
对View进行移动、缩放、旋转和淡入淡出
通过配置Interpolator来控制动画的播放速度
借助AnimationSet来将这些动画效果组合起来使用

分类

Java类名 XML关键字 实现效果
ScaleAnimation scale 渐变尺寸伸缩动画效果
TranslateAnimation translate 画面转换位置移动动画效果
AlphaAnimation alpha 渐变透明度动画效果
RotateAnimation rotate 画面转移旋转动画效果

补间动画的实现

Animation的公用功能

常用API:

  • start():开启动画

  • setAnimationListener(AnimationListener listener):设置动画监听

  • setDuration(long durationMillis) : 设置持续时间(单位ms)
  • setStartOffset(long startOffset) : 设置开始的延迟的时间(单位ms)
  • setFillBefore(boolean fillBefore) : 设置最终是否固定在起始状态
  • setFillAfter(boolean fillAfter) : 设置最终是否固定在最后的状态
  • setAnimationListener(AnimationListener listener) : 设置动画监听
  • setRepeatCount(int repeatCount):设置动画重复次数
  • setInterpolator(Interpolator i):设置使用插值器
  • cancel():取消动画
  • reset():重置动画为初始化状态

  • startAnimation(animation):启动动画(控件)

  • clearAnimation():结束动画(控件)
    坐标类型:

  • Animation.ABSOLUTE 绝对值数值(默认以px为单位) 100

  • Animation.RELATIVE_TO_SELF 相对于自己 百分数,如:50% (以当前视图的宽度或高度其为基数来计算)
  • Animation.RELATIVE_TO_PARENT 相对于父控件 百分数+p,如:50%p (以父视图的宽度或高度其为基数来计算)

动画监听器 : AnimationListener

  • onAnimationStart(Animation animation) : 动画开始的回调

  • onAnimationEnd(Animation animation) : 动画结束的回调

  • onAnimationRepeat(Animation animation) : 动画重复执行

缩放动画(ScaleAnimation)

可以对View大小进行的动画。创建该动画需要指定的参数包括缩放中心坐标(pivotXValue,pivotYValue)、动画开始时缩放比(fromX,fromY)、动画结束时缩放比(toX,toY)和坐标类型值(pivotXType,pivotYType(可参考坐标类型)),以及其它的动画属性。
代码实现
1、源码解析

ScaleAnimation(float fromX, float toX, float fromY, float toY,   int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

第一个参数fromX为动画起始时 X坐标上的伸缩尺寸
第二个参数toX为动画结束时 X坐标上的伸缩尺寸
第三个参数fromY为动画起始时Y坐标上的伸缩尺寸
第四个参数toY为动画结束时Y坐标上的伸缩尺寸
说明:
            以上四种属性值
            0.0表示收缩到没有
            1.0表示正常无伸缩
            值小于1.0表示收缩
            值大于1.0表示放大
第五个参数pivotXType为动画在X轴相对于物件位置类型
第六个参数pivotXValue为动画相对于物件的X坐标的开始位置
第七个参数pivotXType为动画在Y轴相对于物件位置类型
第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置

2、代码

 public void scale(View view) {

ation_Scale = new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,
                Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        animation_Scale.setDuration(2000);
        iv.startAnimation(animation_Scale);
    }

XML实现
1、配置xml动画属性
在res下新建anim文件夹,新建AAA.xml文件。在set属性下新建设置动画属性.


    <scale
        android:duration="1000"
        android:fillAfter="false"
        android:fromXScale="0.0"
        android:fromYScale="0.0"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.4"
        android:toYScale="1.4" />

2、代码引用xml文件

/**
     * 渐变尺寸伸缩动画效果
     *
     * @param view
     */
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值