0

我正在尝试为布局宽度的变化设置动画。我试图动画的布局元素是RelativeLayout。它包含使用规则 ALIGN_PARENT_BOTTOM 定位的 TextView。我通过扩展RelativeLayout 视图组从代码中创建所有内容。

以下是构造函数的一部分:

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% 的处理器时间花在它上面。

那么,有没有办法解决这个问题呢?

4

0 回答 0