1

是否可以在 Android 4.x 中向 View.animate().* 添加自定义属性?

Android 4.x 提供了 View.animate() ,它允许对多个属性进行动画处理。喜欢:

View.animate().alpha(0.5f).setDuration.start();

我想向这个对象添加一个自定义属性,例如:

CustomView.animate().xyz(0.1f).setDuration.start();
4

1 回答 1

3

您可以使用自定义动画来做到这一点:

public class CustomAnim extends Animation {

    private CustomView mLayout;
    private float finalVal;
    private float startVal;

    public CustomAnim(CustomView layout, float finalVal) {
        this.mLayout = layout;
        this.finalVal = finalVal;
        this.startVal = layout.xyz();
    }

    @Override
    protected void applyTransformation(float interpolatedTime, Transformation t) {
        mLayout.setXYZ(interpolatedTime * (finalVal - startVal) + startVal);
    }

    @Override
    public boolean willChangeBounds() {
        return true;
    }   
}

或者,如果您的属性具有 getter 和 setter 方法,例如 setXYZ getXYZ 您可以使用属性动画

于 2012-12-21T18:42:36.167 回答