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倍,循环执行四次。
首先是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);