FileDocCategorySizeDatePackage
ScaleAnimation.javaAPI DocAndroid 1.5 API7278Wed May 06 22:41:56 BST 2009android.view.animation

ScaleAnimation

public class ScaleAnimation extends Animation
An animation that controls the scale of an object. You can specify the point to use for the center of scaling.

Fields Summary
private float
mFromX
private float
mToX
private float
mFromY
private float
mToY
private int
mPivotXType
private int
mPivotYType
private float
mPivotXValue
private float
mPivotYValue
private float
mPivotX
private float
mPivotY
Constructors Summary
public ScaleAnimation(android.content.Context context, android.util.AttributeSet attrs)
Constructor used when a ScaleAnimation is loaded from a resource.

param
context Application context to use
param
attrs Attribute set from which to read values


                                   
         
        super(context, attrs);

        TypedArray a = context.obtainStyledAttributes(attrs,
                com.android.internal.R.styleable.ScaleAnimation);

        mFromX = a.getFloat(com.android.internal.R.styleable.ScaleAnimation_fromXScale, 0.0f);
        mToX = a.getFloat(com.android.internal.R.styleable.ScaleAnimation_toXScale, 0.0f);

        mFromY = a.getFloat(com.android.internal.R.styleable.ScaleAnimation_fromYScale, 0.0f);
        mToY = a.getFloat(com.android.internal.R.styleable.ScaleAnimation_toYScale, 0.0f);

        Description d = Description.parseValue(a.peekValue(
                com.android.internal.R.styleable.ScaleAnimation_pivotX));
        mPivotXType = d.type;
        mPivotXValue = d.value;

        d = Description.parseValue(a.peekValue(
            com.android.internal.R.styleable.ScaleAnimation_pivotY));
        mPivotYType = d.type;
        mPivotYValue = d.value;

        a.recycle();
    
public ScaleAnimation(float fromX, float toX, float fromY, float toY)
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

        mFromX = fromX;
        mToX = toX;
        mFromY = fromY;
        mToY = toY;
        mPivotX = 0;
        mPivotY = 0;
    
public ScaleAnimation(float fromX, float toX, float fromY, float toY, float pivotX, float pivotY)
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.)

        mFromX = fromX;
        mToX = toX;
        mFromY = fromY;
        mToY = toY;

        mPivotXType = ABSOLUTE;
        mPivotYType = ABSOLUTE;
        mPivotXValue = pivotX;
        mPivotYValue = pivotY;
    
public ScaleAnimation(float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
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.

        mFromX = fromX;
        mToX = toX;
        mFromY = fromY;
        mToY = toY;

        mPivotXValue = pivotXValue;
        mPivotXType = pivotXType;
        mPivotYValue = pivotYValue;
        mPivotYType = pivotYType;
    
Methods Summary
protected voidapplyTransformation(float interpolatedTime, Transformation t)

        float sx = 1.0f;
        float sy = 1.0f;

        if (mFromX != 1.0f || mToX != 1.0f) {
            sx = mFromX + ((mToX - mFromX) * interpolatedTime);
        }
        if (mFromY != 1.0f || mToY != 1.0f) {
            sy = mFromY + ((mToY - mFromY) * interpolatedTime);
        }

        if (mPivotX == 0 && mPivotY == 0) {
            t.getMatrix().setScale(sx, sy);
        } else {
            t.getMatrix().setScale(sx, sy, mPivotX, mPivotY);
        }
    
public voidinitialize(int width, int height, int parentWidth, int parentHeight)

        super.initialize(width, height, parentWidth, parentHeight);

        mPivotX = resolveSize(mPivotXType, mPivotXValue, width, parentWidth);
        mPivotY = resolveSize(mPivotYType, mPivotYValue, height, parentHeight);