本文主要详细介绍android对简单ProgressBar效果的实现。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。
在本文中,我们分享了android实现简单ProgressBar的具体代码,供大家参考。具体如下。
记录今天学习的进度条。
1、在布局文件中添加ProgressBar
进度条
android:id=@ id/progressbar
Android:layout _ width= match _ parent
Android:layout _ height= wrap _ content
style=@android:style/Widget。水平进度条
android:max=100
Android:layout _ margin top= 150 DP
/
其中* * style=" @ Android:style/widget . progress bar . horizontal " * *将进度条的样式设置为水平进度条,否则默认为原型旋转的进度条;
Max设置进度条的长度,这里设置为100。
2、java代码:
声明ProgressBar;int类型的mprogress指示进度条的进度;Handler对象处理子线程消息。
按id获取布局中的ProgressBar
progress bar=findViewById(r . id . progress bar);
用处理程序模拟子线程耗时的操作
mhandler=new Handler(){
@覆盖
public void handle Message(@ NonNull Message msg){
super . handle message(msg);
if(msg.what==0x111){
progress bar . set progress(mprogress);//未完成时更新进度条。
}否则{
吐司。MakeText (ProgressActivity。这个,‘耗时操作完成’,吐司。长度_长)。show();
progressBar.setVisibility(视图。不见了);//设置进度条消失
}
}
};
1.Handlerd需要重写handleMessage()方法,参数是来自子线程的msg。
2.msg.what==0x111表示消息是0x111,所以进度条不完整。此时需要通过progress bar . set progress(MProgress)更新进度条。
3.当msg为other时,表示进度条完成。这里只弹出Toast,也可以进行其他操作。
开启子线程更新UI
新线程(新Runnable() {
@覆盖
公共无效运行(){
while (true){
//进度更新
mprogress=doWork();
Message=new Message();
if(mprogress100){
message.what=0x111//进度条不完整时的消息设置为0x111
mhandler.sendMessage(消息);//向处理程序发送消息
}否则{
message.what=0x110//进度条完成时的消息设置为0x110。
mhandler.sendMessage(消息);//向处理程序发送消息
打破;//进程完成并跳出循环
}
}
}
private int doWork(){
mprogress=(int)(mprogress math . random()* 10);
尝试{
thread . sleep(200);//线程停止200毫秒
} catch (InterruptedException e) {
e . printstacktrace();
}
返回mprogress
}
}).start();
1.通过子线程中的doWork()方法模拟耗时的操作。
2.doWork()方法可以改变mprogress的值,用来模拟进度条的进度。
3.需要一个消息对象将消息返回给主线程,
4.当mprogress100,即进度条未完成时,设置message . what=0x111——进度条未完成时,发送给主线程的消息为0x 111。
设置message.what=0x110-当mprogress100即进度条完成时-进度条完成时发送给主线程的消息是0x110。
这里message.what的值可以随意设置,不一定非要0x111,0x110。
5.设置好消息后,需要将消息发送到主线程,即mhandler . sendmessage(message);
以上操作可以实现一个简单的进度条。
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。