我尝试动画更改布局宽度。我正在尝试设置动画的布局元素是RelativeLayout。它包含使用规则ALIGN_PARENT_BOTTOM定位的TextView。我通过扩展RelativeLayout viewgroup来创建代码。
以下是构造函数的一部分:
1 title = new TextView(c);
2 LayoutParams tvParams = new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT);
3 tvParams.addRule(ALIGN_PARENT_BOTTOM);
4 title.setLayoutParams(tvParams);
5 title.setText(this.feed.title);
6 this.addView(title);
这是ValueAnimator:
mScaleX = ValueAnimator.ofInt(mParamsOriginal.width, mParamsLarge.width);
mScaleX.setInterpolator(new LinearInterpolator());
mScaleX.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
int val = (Integer) valueAnimator.getAnimatedValue();
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) getLayoutParams();
layoutParams.width = val;
requestLayout();
}
});
然后我会评论第2-4行,只是将TextView放在布局上就可以了。否则,探测器会说它会导致视图不断重新测量,并且设备会花费90%的处理器时间。
那么,有没有办法解决这个问题?