Android 更改进度条级别
我有一个简单的活动,假设显示一个具有不同填充级别的进度条。学生在我的移动应用程序上进行实践测试后,将显示此带有进度条的活动。因此,进度条将显示学生是否通过,显示所有蓝色,并填充颜色。如果它是一个平均性能。颜色是绿色的一半。如果性能不佳,则颜色完全为红色,带有轻微的颜色填充 下面是我设置填充颜色的小代码,但它不起作用Android 更改进度条级别,android,Android,我有一个简单的活动,假设显示一个具有不同填充级别的进度条。学生在我的移动应用程序上进行实践测试后,将显示此带有进度条的活动。因此,进度条将显示学生是否通过,显示所有蓝色,并填充颜色。如果它是一个平均性能。颜色是绿色的一半。如果性能不佳,则颜色完全为红色,带有轻微的颜色填充 下面是我设置填充颜色的小代码,但它不起作用 if(grade.equals("passed")){ setProgress(100); } else{ setProgress(
if(grade.equals("passed")){
setProgress(100);
}
else{
setProgress(50);
}
下一个为我工作的示例:
private void animate() {
mProgressStatus = 25;
final ProgressBar mProgress = (ProgressBar) findViewById(R.id.progress);
new Thread(new Runnable() {
public void run() {
while (mProgressStatus < 100) {
mHandler.post(new Runnable() {
public void run() {
mProgress.setProgress(mProgressStatus);
}
});
}
}
}).start();
}
private void animate(){
mProgressStatus=25;
最终进度条mProgress=(进度条)findViewById(R.id.progress);
新线程(newrunnable()){
公开募捐{
而(mProgressStatus<100){
mHandler.post(新Runnable(){
公开募捐{
mProgress.setProgress(mProgressStatus);
}
});
}
}
}).start();
}
当我更改mProgressStatus时,进度条会更改填充这就是我通常的操作方式 我扩展了处理程序并添加了自定义方法,使我能够轻松控制刷新状态 您还可以轻松地控制刷新周期
public class ProgressHandler extends Handler {
private static final int START = 0;
private static final int STOP = 1;
private static final int REFRESH = 2;
public void start() {
removeMessages( STOP );
sendEmptyMessage( START );
}
public void stop() {
removeMessages( START );
removeMessages( STOP );
}
@Override
public void handleMessage(Message msg) {
super.handleMessage( msg );
switch (msg.what) {
case REFRESH:
mProgress.setProgress(mProgressStatus);
if( mProgressStatus < 100 )
sendEmptyMessageDelayed( REFRESH, 100 /* Or how much you need */ );
break;
case START:
sendEmptyMessage( REFRESH );
break;
case STOP:
removeMessages( REFRESH );
break;
default:
break;
}
}
};
公共类ProgressHandler扩展处理程序{
私有静态最终整数开始=0;
专用静态最终int停止=1;
私有静态最终整型刷新=2;
公开作废开始(){
删除消息(停止);
sendEmptyMessage(开始);
}
公共停车场(){
移除消息(开始);
删除消息(停止);
}
@凌驾
公共无效handleMessage(消息消息消息){
超级handleMessage(msg);
开关(msg.what){
案例刷新:
mProgress.setProgress(mProgressStatus);
如果(mProgressStatus<100)
sendEmptyMessageDelayed(刷新,100/*或需要多少*/);
打破
案件开始:
sendEmptyMessage(刷新);
打破
案件停止:
删除消息(刷新);
打破
违约:
打破
}
}
};
我认为这是最好的方法之一,甚至比使用原因更好,因为它可以让您更多地自定义行为。您可以通过提供progessbar的xml和更多代码来详细说明。。。这就是你要找的吗?这很糟糕。像这样,大量的Runnable将被Spowned抱歉,我不认为你理解这个问题,我不需要一个动态变化的进度条。我需要一个进度条,当用户在我的应用程序上完成练习测试时,它会显示一个级别。所以有不同的层次。通过的关卡。失败级别和平均性能级别都有不同的颜色