我正在建立一个小项目,这是关于游戏 我设法在游戏中使用进度条作为我的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减少一个数量并且平稳移动的解决方案?
答案 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