2

我面临动画和设置图像资源的问题。

我想在 TranslateAnimation 完成后更改 ImageView 的图像,但是这样做会导致动画不再工作......

这是我的代码:

TranslateAnimation anim = new TranslateAnimation(0, infoBoxLeft - infoBoxOffset, 0, 0);
    anim.setInterpolator(new LinearInterpolator());
    anim.setDuration(millis);

    anim.setAnimationListener(new AnimationListener() {

        @Override
        public void onAnimationEnd(Animation animation) {

            arrowImage.setImageResource(R.drawable.arrow_left);

            infoBox.layout(infoBoxLeft - infoBoxOffset, infoBox.getTop(), (infoBoxLeft - infoBoxOffset)
                    + infoBoxWidth, infoBox.getTop() + infoBox.getHeight());

            infoBox.clearAnimation();

        }
    });

    infoBox.startAnimation(anim);

如果我删除该行arrowImage.setImageResource(R.drawable.arrow_left);一切正常,动画不会运行。我已经尝试过使用setImageDrawable(因为文档说它没有在 UI-Thread 上运行),但没有区别。我还尝试setImageResource在回调之外调用 before/after startAnimation

有任何想法吗?

先感谢您。

4

0 回答 0