ValueAnimator colseAnimator = ValueAnimator.ofFloat(closeWidth, 0);
colseAnimator.addUpdateListener(new AnimatorUpdateListener() {
LinearLayout.LayoutParams params = (LayoutParams)
closeView.getLayoutParams();
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float f = (Float) animation.getAnimatedValue();
params.width = (int) f;
closeView.setLayoutParams(params);
}
});
你可以尝试从这几个方面处理一下:
1. 既然params.width是int类型的, 那么就不要使用ValueAnimator.ofFloat,直接使用ValueAnimator.ofInt, 避免强制类型转换。
2. setLayoutParams后索性直接调用一下invalidate(),
3. ValueAnimator如果时间太短的话可能导致回调onAnimationUpdate次数少, 看起来卡顿, 适当延长时间,
另外interpolator(虽然你这里没有写)如果你有指定的话,尽量使用默认构造函数,不要指定小数,那将引发大运算量
可以跟着这个从头做一遍,看看还会不会出现卡顿现象>>Android开发-属性动画项目公开课