Android使用动画来更改TextView刷新文本仅几帧

时间:2014-04-10 10:31:29

标签: android animation textview

我使用动画将TextView计数从0到某个值。 但是控件只刷新几帧,即如果要从0到100计数,我只看到动画从0到30,而LogCat继续显示详细输出。

final Interpolator easing = new AccelerateDecelerateInterpolator();
final TextView txtSaldo = (TextView) someView.findViewById(R.id.viewId);
Animation a = new Animation()
{
    @Override
    protected void applyTransformation(float interpolatedTime, Transformation t) {
        Log.v("----", "time: " + interpolatedTime + " : " + interpolatedTime*fidelityBalance);
        txtSaldo.setText(String.format("%d",(int)(interpolatedTime*fidelityBalance)));


    }
    @Override
    public boolean willChangeBounds() {
        return false;
    }
};

a.setDuration(5500);
a.setInterpolator(easing);
txtSaldo.startAnimation(a);

我已尝试使用txtSaldo.requestLayout()txtSaldo.invalidate(),但没有运气。 有帮助吗? 感谢

1 个答案:

答案 0 :(得分:1)

通过强制使用invalidate()到顶部主视图容器找到解决方案:

protected void applyTransformation(float interpolatedTime, Transformation t) {
        Log.v("----", "time: " + interpolatedTime + " : " + interpolatedTime*fidelityBalance);
        txtSaldo.setText(String.format("%d",(int)(interpolatedTime*fidelityBalance)));

        // top container view
        v.invalidate();
    }

可能问题是由于视图中的其他并发动画完成而TextView仍处于计数状态。