如何在android上使用progressbar作为hp栏

时间:2014-01-19 07:33:02

标签: android android-progressbar

我正在建立一个小项目,这是关于游戏 我设法在游戏中使用进度条作为我的hp栏。 但是,它没有任何动画。 这里'伤害'是一个整数,它是对hp bar的伤害。 和hpBar是对应于curHp的hp栏

for( int i=0 ; i<damage ; i++){
      new Handler().postDelayed(new Runnable(){ 
        @Override
        public void run(){
            --curHp;
            hpBar.setProgress(curHp);
        }
    },40);


}

我认为当hp减少1时会有40ms的延迟。 但实际上,如果损伤为40,则hpBar在1.6s之后一次减少

是否有任何关于使progressBar减少一个数量并且平稳移动的解决方案?

1 个答案:

答案 0 :(得分:1)

您应该提前创建Handler()并将其保留在范围内。

此外,你可以睡觉线程:

for( int i=0 ; i<damage ; i++){
  new Handler().postDelayed(new Runnable(){ 
    @Override
    public void run(){
       try {
          Thread.sleep(40);
       } catch (InterruptedException e) { }
       --curHp;
        hpBar.setProgress(curHp);
    }
},40);
}

应该说你可能会通过自定义视图获得更好的里程,而不是试图让ProgressBar成为你的HP仪表:

http://developer.android.com/training/custom-views/index.html