欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android补间动画之缩放动画

程序员文章站 2022-06-27 14:21:51
...

缩放动画(ScaleAnimation)简介

以控件的中心点为中心做缩小或放大的动作,缩放动画可以实现view有小到大或者由大到小的缩放效果。

缩放动画属性

缩放动画使用scale标签标示,主要有一下几个属性 

属性 描述
fromXScale 初始x轴缩放比例
toXScale 结束x轴缩放比例,大于1表示放大,小于1表示缩小
fromYScale 初始y轴缩放比例
toYScale 结束y轴缩放比例,大于1表示放大,小于1表示缩小
pivotX 缩放起点x轴坐标
pivotY 缩放启动y轴坐标

缩放动画的实现方式

缩放动画的实现分为xml方式和Java代码方式,接下来通过一个demo来讲解一下这两种方式。 

缩放动画demo

demo要实现的效果如下:一个红球,通过缩放动画放大至自身大小的1.5倍,循环执行四次。 

Android补间动画之缩放动画

 

首先是xml方式实现,xml方式主要步骤有两步:

1.  创建scale.xml文件
<set xmlns:android="http://schemas.android.com/apk/res/android"
    >
<scale android:fromXScale="1"//缩放的起始x方向的大小,0 中心点 >0&<1 起始点为原  控件先缩小一定比例之后的大小  1 自身大小 >1 原控件先放大一定比例之后的大小
    android:fromYScale="1"//同fromXScale
    android:toXScale="1.5"//x方向缩放到原尺寸的倍数,小于1表示缩小,大于1表示放大,等于1表示没有缩放
    android:toYScale="1.5"//同上
    android:duration="2000"//动画执行时长,当repeatCount=0时为动画执行总时长,repeatCount>0时为每次执行动画的时长。
    android:fillAfter="true"//动画执行结束之后是否停留在最后一帧,默认false。
    android:fillBefore="false"//动画结束之后是否停留在第一帧,默认true。
    android:fillEnabled="false"//设置效果填充,控制fillbefore是否生效,默认false。
    android:repeatCount="4"//动画执行次数,偶数时fillAfter=true有效,奇数时无效
    android:repeatMode="reverse"//重复模式,restart 重新开始,reverse 倒序回放
    android:interpolator="@android:anim/linear_interpolator"/>//线性匀速运动插值器
</set>
2.  加载动画文件并执行动画 
Animation animation  = AnimationUtils.loadAnimation(this,R.anim.scale);//加载动画
imageView.startAnimation(animation);//执行动画

Java代码创建缩放动画,同样需要两个步骤: 

1. 创建缩放动画并设置属性
Animation animation = new ScaleAnimation(1.0f,1.5f,1.0f,1.5f);
animation.setDuration(2000);
animation.setRepeatMode(Animation.REVERSE);
animation.setRepeatCount(4);
animation.setFillAfter(true);
animation.setFillEnabled(true);
2. 执行动画
imageView.startAnimation(animation);