将XML Animation更改为动态代码

时间:2011-12-29 07:10:21

标签: android android-animation

我有这个动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator">
    <scale android:fromXScale="1.0" android:toXScale="2.0"
    android:fromYScale="1.0" android:toYScale="2.0"
    android:pivotX="50%p" android:pivotY="50%p"
    android:duration="2000" />
</set>

但我必须在我的代码中使其动态化:

AnimationSet animSet = new AnimationSet(false);
animSet.setInterpolator(AnimationUtils.loadInterpolator(AddPhoto.this,
     android.R.anim.decelerate_interpolator));
ScaleAnimation zoom = new ScaleAnimation(1.0f, 1.0f, 2.0f, 2.0f);
   zoom.setDuration(2000);
  animSet.addAnimation(zoom);

但它不一样,我做错了什么?感谢。

1 个答案:

答案 0 :(得分:4)

您忘了设置PivotX和PivotY。使用以下ScaleAnimator构造函数

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


 Parameters

 fromX  Horizontal scaling factor to apply at the start of the animation
 toX    Horizontal scaling factor to apply at the end of the animation
 fromY  Vertical scaling factor to apply at the start of the animation
 toY    Vertical scaling factor to apply at the end of the animation
 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.)
 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.)