在没有一个简单的属性getter / setter的情况下,你应该使用
ValueAnimator并手动执行动画。
假设:
> v是你的动画视图
> END_WIDTH是视图的目标宽度(以像素为单位)。
> DUARTION是动画的所需长度(以毫秒为单位)。
你的代码应该看起来像这样:
ValueAnimator anim = ValueAnimator.ofInt(v.getMeasuredWidth(), END_WIDTH);
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
int val = (Integer) valueAnimator.getAnimatedValue();
ViewGroup.LayoutParams layoutParams = v.getLayoutParams();
layoutParams.width = val;
v.setLayoutParams(layoutParams);
}
});
anim.setDuration(DURATION);
anim.start();