2014-11-09 161 views
0

我在此处使用此代码来循环和更新自定义进度栏上的进度。减慢进度条进度

class MyThreadRunner implements Runnable { 
     // @Override 
    int count = 0; 
     public void run() { 
      try { 
      while (count < 90) { 
       Thread.sleep(10); 
       count += 1; 
       progressBar.setProgress(count); 
       progressBar.setText(count + "%"); 
      } 
       } catch (InterruptedException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

       } 
}; 

当它靠近末端时我希望它开始减慢,这是可能的,而不必再做一个while循环吗?

回答

1

为什么不改变超过90的值的睡眠时间?

class MyThreadRunner implements Runnable { 
     // @Override 
    int count = 0; 
     public void run() { 
      try { 

      while (count < 100) { 

       //500 is half a second... 
       int sleepTime = count < 90 ? 10 : 500; 
       Thread.sleep(sleepTime); 

       count += 1; 
       progressBar.setProgress(count); 
       progressBar.setText(count + "%"); 
      } 
       } catch (InterruptedException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

       } 
};  
0
class MyThreadRunner implements Runnable { 
     // @Override 
    int count = 0; 
    int sleepTime = 0; 
     public void run() { 

      while (count < 100) { 
       sleepTime = count < 90 ? 10 : 100; 
       Thread.sleep(sleeptime); 

      } 


};