是否可以在 Android 4.x 中向 View.animate().* 添加自定义属性?
Android 4.x 提供了 View.animate() ,它允许对多个属性进行动画处理。喜欢:
View.animate().alpha(0.5f).setDuration.start();
我想向这个对象添加一个自定义属性,例如:
CustomView.animate().xyz(0.1f).setDuration.start();
您可以使用自定义动画来做到这一点:
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 您可以使用属性动画