首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >进度条-是否按增量暂停0.5秒?

进度条-是否按增量暂停0.5秒?
EN

Stack Overflow用户
提问于 2012-08-04 08:25:35
回答 2查看 676关注 0票数 0

我有一个进度条,我想让它前进5秒。我正在尝试执行一个' for‘循环10次,每次循环运行时,进度条都会递增1/10。我有增加1/10的条形图的代码,但我现在正在尝试创建一个循环:

将条形图增加到1/10等待0.5秒...将条形图增加到2/10等待0.5秒...将条形图增加到3/10等待0.5秒...等。

到目前为止,这是我的代码,但它不起作用,它将条形图提升到10/10 (满)。有什么想法吗?

非常感谢。

代码语言:javascript
复制
             for(int a = 0; a <= 10; a++){  
                 if(mp1.isPlaying()){   // my 5 second wav file

                       int newProgress = pBar1.getProgress() + (pBar1.getMax() / 10);
                        if (newProgress < 0) {
                            newProgress = 0;
                           }
                  pBar1.setProgress(newProgress);
                 // pause for 0.5 seconds here//
               }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-09 06:45:16

Thread.sleep(500);将暂停半秒。但您必须在UI线程以外的线程中执行此操作。如果您将UI线程置于睡眠状态,则应用程序中的所有其他交互都将锁定,直到睡眠结束。

票数 1
EN

Stack Overflow用户

发布于 2012-08-09 06:56:53

你所问的问题是,虽然暂停0.5秒制作thread sleep很容易,但你的整个UI会冻结,这是不好的,你不应该这样做。

您真正的问题似乎是您想要一个进度条来显示您正在播放的音频剪辑中经过的时间。如果您使用的是MediaPlayer,则可以使用getCurrentPositiongetDuration为任何大小的音频剪辑计算此值。即:

代码语言:javascript
复制
//Calculate the current clip position as a value between 0 and 100
int progress = (int) ((float) mp1.getCurrentPosition() / mp1.getDuration() * 100);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11804898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档