Android缩放动画

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

完整开源地址:https://docs.qq.com/doc/DSkNLaERkbnFoS0ZF

/**

* Constructor to use when building a ScaleAnimation from code

* 

* @param fromX Horizontal scaling factor to apply at the start of the animation

* @param toX Horizontal scaling factor to apply at the end of the animation

* @param fromY Vertical scaling factor to apply at the start of the animation

* @param toY Vertical scaling factor to apply at the end of the animation

* @param pivotX The X coordinate of the point about which the object is being scaled, specified as an absolute number where 0 is the left edge. (This point remains fixed while the object changes size.)

* @param pivotY The Y coordinate of the point about which the object is being scaled, specified as an absolute number where 0 is the top edge. (This point remains fixed while the object changes size.)

*/

public ScaleAnimation(float fromX, float toX, float fromY, float toY, float pivotX, float pivotY) {

   mResources = null;

   mFromX = fromX;

   mToX = toX;

   mFromY = fromY;

   mToY = toY;



   mPivotXType = ABSOLUTE;

   mPivotYType = ABSOLUTE;

   mPivotXValue = pivotX;

   mPivotYValue = pivotY;

   initializePivotPoint();

}




*   前4个参数和上面的用法一样,后两个参数是设置图片缩放的原点,四个参数的构造默认将这两个参数都设置了0,所以是在图片左上角开始缩放



**用法**



ScaleAnimation sa = new ScaleAnimation(0f, 1.0f, 0f, 1.0f, iv.getWidth() / 2, iv.getHeight() / 2);

// 设置动画播放的时间

sa.setDuration(1000);

// 开始播放动画

iv.startAnimation(sa);




**效果**



以图片的中心为原点,从没有放大到图片原大小



* * *



8个参数构造方法

--------



/**

* Constructor to use when building a ScaleAnimation from code

* 

* @param fromX Horizontal scaling factor to apply at the start of the animation

* @param toX Horizontal scaling factor to apply at the end of the animation

* @param fromY Vertical scaling factor to apply at the start of the animation

* @param toY Vertical scaling factor to apply at the end of the animation

* @param pivotXType Specifies how pivotXValue should be interpreted. One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT.

* @param pivotXValue The X coordinate of the point about which the object is being scaled, specified as an absolute number where 0 is the left edge. (This point remains fixed while the object changes size.) This value can either be an absolute number if pivotXType is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.

* @param pivotYType Specifies how pivotYValue should be interpreted. One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT.

* @param pivotYValue The Y coordinate of the point about which the object is being scaled, specified as an absolute number where 0 is the top edge. (This point remains fixed while the object changes size.) This value can either be an absolute number if pivotYType is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.

*/

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

   mResources = null;

   mFromX = fromX;

   mToX = toX;

   mFromY = fromY;

   mToY = toY;



   mPivotXValue = pivotXValue;

   mPivotXType = pivotXType;

   mPivotYValue = pivotYValue;

   mPivotYType = pivotYType;

   initializePivotPoint();

}




**用法**



// 创建缩放的动画对象

ScaleAnimation sa = new ScaleAnimation(0f, 1.0f, 0f, 1.0f, ScaleAnimation.RELATIVE_TO_SELF, 0.5f, ScaleAnimation.RELATIVE_TO_SELF, 0.5f);

// 设置动画播放的时间

sa.setDuration(1000);

// 开始播放动画

iv.startAnimation(sa);




*   和上面6个参数的相比只是多了第5和第7个参数,分别设置他们的类型,注释里面已经说明了,可以设置Animation.ABSOLUTE、Animation.RELATIVE\_TO\_SELF、Animation.RELATIVE\_TO\_PARENT类型



**效果**



效果和上面一样,以图片的中心为原点,从没有放大到图片原大小。



* * *



设置动画重复播放的次数的方法

--------------



/**

  • Sets how many times the animation should be repeated. If the repeat

  • count is 0, the animation is never repeated. If the repeat count is

  • greater than 0 or {@link #INFINITE}, the repeat mode will be taken

  • into account. The repeat count is 0 by default.

  • @param repeatCount the number of times the animation should be repeated

  • @attr ref android.R.styleable#Animation_repeatCount

*/

public void setRepeatCount(int repeatCount) {

if (repeatCount < 0) {

    repeatCount = INFINITE;

}

mRepeatCount = repeatCount;

}




**使用**



sa.setRepeatCount(2);




* * *



设置动画重复播放的模式的方法

--------------



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值