我正在构建一个 ImageSwitcher 以适应移动应用程序作为横幅切换器。目前,我们使用 Handler 旋转横幅并将可运行对象延迟 7 秒(准确地说是 7000 毫秒),但我们希望在两个图像之间产生更花哨的过渡效果。我将其用作参考,并且这样做的时间很糟糕。我理解它背后的概念,但我想完全去掉画廊部分,只使用我们必须使用 ImageSwitch 转换的处理程序。
这是我们的图像切换代码:
private Runnable updateBannerRun = new Runnable(){
public void run() {
if (bannerQueue > 3){
bannerQueue = 1;
} else {
bannerQueue ++;
}
ImageView i = (ImageView)findViewById(R.id.imageView1);
switch (bannerQueue){
case 1:
i.setImageResource(R.drawable.image1);
break;
case 2:
i.setImageResource(R.drawable.image2);
break;
case 3:
i.setImageResource(R.drawable.image3);
break;
case 4:
i.setImageResource(R.drawable.image4);
break;
}
updateBanner();
}
};
这是处理程序的代码:
public void updateBanner(){
mHandler.postDelayed(updateBannerRun, 7000);
}
我最大的问题是当我们运行它时,我们得到一个 nullPointException 返回。
任何帮助将不胜感激。