【发布时间】:2012-01-03 12:37:17
【问题描述】:
我首先想说的是,我经常使用 google 来找到一个进度条,该进度条会随着时间的流逝而自动填充。我在 thread 或 Asynctask 中找到的所有结果。作为 Android 新手,我认为使用处理进度条更新的额外 Handler 更容易完成。
但是,我没有发现有人按照我的方式做。它可能违反Android规则吗?例如,我可以同时使用多个 Handlers 吗?
我的代码如下:
public void restarttimebar()
{
stoptimebar();
for(int i=1;i<12;i++)
{
Message msg = timebarhandler.obtainMessage(0,i,0);
timebarhandler.sendMessageDelayed(msg, i*250);
}
};
public void stoptimebar()
{
timebarhandler.removeMessages(0);
Message msg = timebarhandler.obtainMessage(0,0,0);
timebarhandler.sendMessage(msg);
};
Handler timebarhandler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
ProgressBar progressbar = (ProgressBar)findViewById(R.id.timebar);
if (msg.arg1 == 0)
{
progressbar.setProgress(0);
}
if (msg.arg1 > 0)
{
progressbar.setProgress(msg.arg1*9);
}
}
};
现在可以调用restarttimebar(); (重新)启动进度条。它将以每 0.25 秒的增量填充超过 3 秒。任何评论都非常感谢!
编辑:还添加了一个 stoptimebar();只是停止进度条。此外,进度条的标准大小是 100。所以我只需将 12 次更新乘以 9。它几乎是 100 ;) 在我的应用程序中,进度条不必非常精确。
【问题讨论】:
-
没有备注?我在真实设备(LG 2x Speed)和 Eclipse 模拟器中对其进行了测试,效果很好。然后我保持这种方式:) 可能对谷歌这类东西的人有用。 (7 小时前有些地方是晚上,所以他们可能还没有看到这个帖子:P)
标签: java android time progress-bar handler