ImageSwitcher在前2个图像切换后没有动画

时间:2012-06-30 17:34:52

标签: android animation imageswitcher

我使用Android的鲜为人知的ImageSwitcher来动画ImageView中的图像变化。目前,有2个图像(默认和" ok和#34;图像)在某些事件上切换(所有发生在主线程上) - 第一个图像淡出,而第二个图像淡入。这个&# 39; ImageSwitcher应该如何工作。

前2个动画(从默认值到#34; ok"再回到默认值)渐渐消失。然后,突然,图像不再从一个到另一个淡化,但是视图立即切换到第二个图像,并且动画在第二个图像的两个重叠版本周围混乱(这些图像是半透明的黑色,我可以看到第二张图像是如何从几乎全黑变回正常的。)

切换是这样实现的:

// Initialization in onCreate():
mRefreshImageSwitcher = (ImageSwitcher) findViewById(R.id.main_refresh);
mRefreshImageSwitcher.setFactory(new RefreshButtonViewFactory());
mRefreshImageSwitcher.setImageResource(R.drawable.refresh);

// ...

    mRefreshImageSwitcher.setInAnimation(getFadeAnimation(true, 300));
    mRefreshImageSwitcher.setOutAnimation(getFadeAnimation(false, 300)); 
    mRefreshImageSwitcher.setImageResource(R.drawable.refresh_ok);

// ...

private Animation getFadeAnimation(boolean in, long durationMillis) {
    Animation a = AnimationUtils.loadAnimation(this, in ? android.R.anim.fade_in : android.R.anim.fade_out);
    a.setDuration(durationMillis);
    return a;
}

或者,我试图总是使用相同的动画对象,但这并没有改变任何东西。

是否有可能不止一次地设置相同的图像会弄乱ImageSwitcher?还有其他想法吗?

1 个答案:

答案 0 :(得分:1)

您没有写下如何更改事件中的图像,但有一件事是确保您使用mRefreshImageSwitcher.setImageResource()而非mRefreshImageSwitcher.setBackgroundResource()因为设置背景不会播放动画