好吧,至于一个没有显示实际进度的简单进度轮(只是你的应用程序正在做某事),我建议一个简单的动画图像(例如在http://www.ajaxload.info/生成一个)).
如果动画图像/ gif不是一个选项:
一个简单的解决方案是创建几个图像并以循环方式替换它们.我最近用过这个,基本上你做了一个自称的计时器:
Timer updateAnim = new Timer() {
@Override
public void run() {
currentImage = (currentImage + 1) % NO_IMAGES;
setVisibilities();
this.schedule(UPDATE_TICK);
}
};
private void setVisibilities() {
img1.setVisible(false);
img2.setVisible(false);
switch (currentImage) {
case 0:
img1.setVisible(true);
break;
case 1:
img2.setVisible(true);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
setVisibilities()只需将当前图像设置为可见,将其他图像设置为不可见.我经历过这比切换图像URL更快(仅使用一个图像,调用img.setURL(String url);).
现在你只需要打电话updateAnim.schedule(UPDATE_TICK);,它就会运行.
我想最快(因为浏览器可以优化它)将是使用CSS动画(创建一个图像并旋转它),但也可能是最复杂的(没有使用那么多,所以可能是它的实际上比我想象的更简单;).看看这篇关于CSS旋转动画的帖子.
如果你想创建一个真正的进度条(实际显示进度),你需要一个在进度上调用的回调.只需更新此进度回调中的图像/ CSS过渡.