Android 动画 - ScaleAnimation 缩放动画使用(附图)

ScaleAnimation:缩放动画

同样,创建ScaleAnimation也有两种方式

  1. XML文件+Java代码
  2. Java代码方式

XML文件+Java代码

效果图:
这里写图片描述

文件目录:res/anim/scale.xml

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
      android:duration="3000"
      android:fillAfter="true"
      android:fillBefore="true"
      android:fromXScale="1.0"
      android:fromYScale="1.0"
      android:interpolator="@android:anim/linear_interpolator"
      android:pivotX="50%"
      android:pivotY="50%"
      android:repeatCount="-1"
      android:repeatMode="reverse"
      android:startOffset="2000"
      android:toXScale="2.0"
      android:toYScale="2.0"/>

Java代码

        ScaleAnimation scaleAnimation = (ScaleAnimation) AnimationUtils.loadAnimation(XmlViewAnimationActivity.this, R.anim.scale);
        mIvImg.startAnimation(scaleAnimation);
  • android:duration:动画持续时长
  • android:fillAfter:动画结束之后是否保持动画的最终状态;true,表示保持动画的最终状态
  • android:fillBefore:动画结束之后是否保持动画开始前的状态;true,表示恢复到动画开始前的状态
  • android:interpolator:动画插值器。是实现动画不规则运动的一种方式,后面讲到
  • android:pivotX:缩放中心坐标的X值,取值类型有三种:数字;百分比;百分比+”p”;
  • 数字:例如50.0,这里的单位是px像素
  • 百分比:例如50%,这里是相对于自己控件宽度的百分比,实际的值是mIvImg.getWidth()*50%;
  • 百分比+”p”:例如50%p,这里是表示相对于自己控件的父控件的百分比,
  • android:pivotY:同上
  • android:repeatCount:动画重复的次数。指定动画重复播放的次数,如果你需要无限循环播放,请填写一个小于0的数值,一般写-1
  • android:repeatMode:动画重复的Mode,有reverse和restart两种,效果看后面
  • android:startOffset:动画播放延迟时长,就是调用start之后延迟多少时间播放动画
  • android:fromXScale:动画开始时X轴方向控件大小,取值和android:pivot一样;三种取值类型:数字;百分比;百分比+”p”;
  • android:fromYScale:动画开始时Y轴方向控件大小,取值类型同上
  • android:toXScale:动画在X轴方向上控件的目标大小,取值类型同上
  • android:toYScale:动画在Y轴方向上控件的目标大小,取值类型同上

首先这里还有一个android坐标位置的概念:
这里写图片描述

如果你看了上一篇文章,上面讲过了的,这里就不讲了,看下面两个属性
缩放的中心点位置:android:pivotX/android:pivotY
取值类型有三种:数字;百分比;百分比+”p”;

  • 数字:例如50.0,这里的单位是px像素
  • 百分比:例如50%,这里是相对于自己空间宽度的百分比,实际的值是mIvImg.getWidth()*50%或者mIvImg.getHeight()*50%;
  • 百分比+”p”:例如50%p,这里是表示相对于自己控件的父控件的百分比,

第一种:数字
android:pivotX为数字的时候,数字表示px像素
android:pivotX=”0”,android:pivotY=”0”,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值