最近用到了ScaleAnimation来实现图片放大需求,今天就把使用过程中学习的一些东西总结记录一下,希望能对大家有所帮助。
- ScaleAnimation是 Android官方提供的动画类Animation的子类
Animation类是一个抽象类,我们通常会使用它的四个子类AlphaAnimation、RotateAnimation、ScaleAnimation和TranslateAnimation,他们分别可以实现渐变动画、旋转动画、平移动画、缩放动画 功能,当然我们今天的主角就是缩放动画 ScaleAnimation。
Android中的坐标
要用到ScaleAnimation,我们最好先了解Android的坐标,当然这并不是我们这篇文章的重点,所以我就在这里放一篇我学习坐标时看的博客,供大家参考一下,不具体展开讲解了,想要深入了解的朋友可以去找找别的相关博客。
https://blog.csdn.net/lvxiangan/article/details/19971509
ScaleAnimation的属性
我们先从源码来看看ScaleAnimation的诸多属性,mFromX、mToX、mFromY、mToY和mPivotXType、mPivotXValue、mPivotYType、mPivotYValue这八个属性可以通过XML或代码调用构造方法来注入。
public class ScaleAnimation extends Animation {
private float mFromX; //动画开始前X坐标比例
private float mToX; //动画开始后X坐标比例
private float mFromY; //动画开始前Y坐标比例
private float mToY; //动画开始后Y坐标比例
//动画开始前X坐标类型
private int mFromXType = TypedValue.TYPE_NULL;
//动画开始后X坐标类型
private int mToXType = TypedValue.TYPE_NULL;
//动画开始前Y坐标类型
private int mFromYType = TypedValue.TYPE_NULL;
//动画开始后Y坐标类型
private int mToYType = TypedValue.TYPE_NULL;
private int mPivotXType = ABSOLUTE; //缩放中心点的X坐标类型
private int mPivotYType = ABSOLUTE; //缩放中心点的Y坐标类型
private float mPivotXValue = 0.0f; //缩放中心点的X坐标比例