我面临动画和设置图像资源的问题。
我想在 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
。
有任何想法吗?
先感谢您。