0

当涉及到这些事情时,我是初学者,所以如果这是一个简单的问题,我深表歉意。

我正在尝试实现 ImageSwitcher 以循环浏览一组图像。为此,我正在尝试按照此处所述实现计时器:如何使 ImageSwitcher 每 5 秒切换一次图像?

我已经让图像循环正常,但是图像加载然后动画发生。将显示图像 1,然后切换到图像 2,然后淡出图像 2 并再次淡入。然后图像 2 将显示指定的时间,并重复该过程。

我希望图像 1 淡出,然后将图像 2 淡入。

这是我到目前为止所拥有的:

imageSwitcher = (ImageSwitcher) findViewById(R.id.welcome_image);
    imageSwitcher.setFactory(this);
    imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
    imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));

上述问题的计时器:

Timer t = new Timer();
  //Set the schedule function and rate
  t.scheduleAtFixedRate(new TimerTask() {
public void run() {
          //Called each time when 1000 milliseconds (1 second) (the period parameter)
          currentIndex++;
        // If index reaches maximum reset it
         if(currentIndex==messageCount)
             currentIndex=0;
         runOnUiThread(new Runnable() {

            public void run() {


                imageSwitcher.setImageResource(imageIDs[currentIndex]);

            }
      });
      }

  },1000,5000);

public View makeView() {
    ImageView imageView = new ImageView(this);
    imageView.setBackgroundColor(0x00000000);
    imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
    imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    return imageView;
}

我将非常感谢一些帮助。

4

1 回答 1

0

您正在设置 setInAnimation() 2 次。你没有设置 setOutAnimation()。

喜欢:

imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,   
android.R.anim.fade_out));
于 2014-01-15T05:13:22.623 回答