FileDocCategorySizeDatePackage
RotateAnimation.javaAPI DocAndroid 5.1 API6815Thu Mar 12 22:22:10 GMT 2015android.view.animation

RotateAnimation

public class RotateAnimation extends Animation
An animation that controls the rotation of an object. This rotation takes place in the X-Y plane. You can specify the point to use for the center of the rotation, where (0,0) is the top left point. If not specified, (0,0) is the default rotation point.

Fields Summary
private float
mFromDegrees
private float
mToDegrees
private int
mPivotXType
private int
mPivotYType
private float
mPivotXValue
private float
mPivotYValue
private float
mPivotX
private float
mPivotY
Constructors Summary
public RotateAnimation(android.content.Context context, android.util.AttributeSet attrs)
Constructor used when a RotateAnimation 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.RotateAnimation);

        mFromDegrees = a.getFloat(
                com.android.internal.R.styleable.RotateAnimation_fromDegrees, 0.0f);
        mToDegrees = a.getFloat(com.android.internal.R.styleable.RotateAnimation_toDegrees, 0.0f);

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

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

        a.recycle();

        initializePivotPoint();
    
public RotateAnimation(float fromDegrees, float toDegrees)
Constructor to use when building a RotateAnimation from code. Default pivotX/pivotY point is (0,0).

param
fromDegrees Rotation offset to apply at the start of the animation.
param
toDegrees Rotation offset to apply at the end of the animation.

        mFromDegrees = fromDegrees;
        mToDegrees = toDegrees;
        mPivotX = 0.0f;
        mPivotY = 0.0f;
    
public RotateAnimation(float fromDegrees, float toDegrees, float pivotX, float pivotY)
Constructor to use when building a RotateAnimation from code

param
fromDegrees Rotation offset to apply at the start of the animation.
param
toDegrees Rotation offset to apply at the end of the animation.
param
pivotX The X coordinate of the point about which the object is being rotated, specified as an absolute number where 0 is the left edge.
param
pivotY The Y coordinate of the point about which the object is being rotated, specified as an absolute number where 0 is the top edge.

        mFromDegrees = fromDegrees;
        mToDegrees = toDegrees;

        mPivotXType = ABSOLUTE;
        mPivotYType = ABSOLUTE;
        mPivotXValue = pivotX;
        mPivotYValue = pivotY;
        initializePivotPoint();
    
public RotateAnimation(float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
Constructor to use when building a RotateAnimation from code

param
fromDegrees Rotation offset to apply at the start of the animation.
param
toDegrees Rotation offset 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 rotated, specified as an absolute number where 0 is the left edge. 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 rotated, specified as an absolute number where 0 is the top edge. This value can either be an absolute number if pivotYType is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.

        mFromDegrees = fromDegrees;
        mToDegrees = toDegrees;

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

        float degrees = mFromDegrees + ((mToDegrees - mFromDegrees) * interpolatedTime);
        float scale = getScaleFactor();
        
        if (mPivotX == 0.0f && mPivotY == 0.0f) {
            t.getMatrix().setRotate(degrees);
        } else {
            t.getMatrix().setRotate(degrees, mPivotX * scale, mPivotY * scale);
        }
    
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);
    
private voidinitializePivotPoint()
Called at the end of constructor methods to initialize, if possible, values for the pivot point. This is only possible for ABSOLUTE pivot values.

        if (mPivotXType == ABSOLUTE) {
            mPivotX = mPivotXValue;
        }
        if (mPivotYType == ABSOLUTE) {
            mPivotY = mPivotYValue;
        }