1

我正在使用 Android 鲜为人知的ImageSwitcher为 ImageView 中的图像更改设置动画。目前,有 2 个图像(默认和“ok”图像)在某些事件(所有事件都发生在主线程上)上打开 - 第一个图像淡出,而第二个图像淡入。这就是 ImageSwitcher 应该如何工作.

前 2 个动画(从默认到“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?还有其他想法吗?

4

1 回答 1

1

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

于 2013-01-22T08:42:10.753 回答