ProgressBar进度条

当一个应用在后台执行时,前台界面不会有任何信息,这时,用户根本不知道程序是否在执行以及执行的进度等, 因此需要使用进度条来提示程序执行的进度。

而ProgressBar就是来做这个事情的。

activity_main.xml

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.amy.processbartest.MainActivity">

android:id="@+id/progressBar1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:max="100"

style="@android:style/Widget.ProgressBar.Horizontal" />

android:id="@+id/progressBar2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

style="?android:attr/progressBarStyleLarge"/>

MainActivity.java

package com.amy.processbartest;

import android.os.Handler;

import android.os.Message;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.ProgressBar;

import android.widget.Toast;

import static android.R.attr.id;

public class MainActivity extends AppCompatActivity {

//定义水平进度条

private ProgressBar horizonP;

//定义圆形进度条

private ProgressBar circleP;

//完成进度

private int mProcessStatus = 0;

//声明一个用于处理消息的Handler类的对象

private Handler mHandler;

/**

* 在主活动onCreate方法中,首先获得水平进度条和圆形进度条,

* 然后通过匿名内部类实例化处理消息的Handler类的对象,并重写其handlerMessage方法,

* 实现当好吃操作没有完成时更新进度,否则设置进度条不显示。

* @param savedInstanceState

*/

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

horizonP = (ProgressBar) findViewById(R.id.progressBar1);

circleP = (ProgressBar) findViewById(R.id.progressBar2);

mHandler = new Handler(){

@Override

public void handleMessage(Message msg) {

if (msg.what == 0x111) {

horizonP.setProgress(mProcessStatus);//更新进度

} else {

Toast.makeText(MainActivity.this,"耗时操作已经完成",Toast.LENGTH_SHORT).show();

horizonP.setVisibility(View.GONE);

circleP.setVisibility(View.GONE);

}

}

};

//开个线程用语模拟耗时操作

new Thread(new Runnable() {

@Override

public void run() {

while (true) {

mProcessStatus = doWork();//获取耗时操作完成的百分比

Message msg = new Message();

if (mProcessStatus<100) {

msg.what = 0x111;

mHandler.sendMessage(msg);//发送消息

} else {

msg.what = 0x110;

mHandler.sendMessage(msg);//发送消息

break;

}

}

}

//模拟一个耗时操作

private int doWork() {

mProcessStatus += Math.random()*10;//改变完成进度

try {

Thread.sleep(200);//每隔200毫秒进度改变一次

} catch (InterruptedException e) {

e.printStackTrace();

}

return mProcessStatus;//返回新的进度

}

}).start();//开启一个新的线程

}

}

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

android进度条已加载部分闪光,Android进度条ProgressBar的实现代码相关推荐

  1. android进度条已加载部分闪光,叮咚!运动会进度条已加载至■■■99%

    原标题:叮咚!运动会进度条已加载至■■■99% 突然有一天, 小医发现自己的课程表里 多了好多"空格", 一点都不像是 医学生该有的充实的样子! 那么, 真相只有一个-- 11月5 ...

  2. android图标随着进度条动画,Android开发之ProgressBar字体随着进度条的加载而滚动...

    在网上翻阅了很多关于ProgressBar滚动效果,但是始终没有找到适合项目中的这种效果,故自己写这篇文章,记录一下写作过程,给大家做一个参考.先看下最终效果效果图 我这里用的是LICEcap软件录制 ...

  3. Android BGradualProgress 多种渐变、直角or弧角、进度条、加载条

    可实现多种渐变.直角or弧角.进度条.加载条 (Various gradient, right or arc angle, progress bar and loading bar can be re ...

  4. Android缓冲进度条或加载进度条

    缓冲进度条或加载进度条,在加载页面或者视频加载过程中,为了做到更好的UI及App功能体验交互,这些缓冲加载的等待效果是必不可少的: 下面来看一下旋转的动画效果: 那么,他们的具体源码在这里:loadi ...

  5. android圆形点击效果,Android 三种方式实现自定义圆形页面加载中效果的进度条

    [实例简介] Android 三种方式实现自定义圆形页面加载中效果的进度条 [实例截图] [核心代码] ad376a86-a9aa-49bc-8cea-321bcff2c0c3 └── AnimRou ...

  6. Android进度条/等待加载——旋转小圆点效果

    进度条/等待加载--旋转小圆点效果 1 效果图 2.思想 12个小圆点叠放(i=0,1,-11) 动画一:依次从0度旋转到30i度 动画二:依次从30i度旋转到360度 因为不牵扯用户交互,所以用最基 ...

  7. html加载swf 进度条,Flash加载外部文件创建进度条3种方法

    Flash加载外部文件创建进度条3种方法 互联网   发布时间:2008-10-07 09:36:14   作者:佚名   我要评论 加载外部文件的进度条(看帮助文档整理),只适合那些不愿看帮助文档的 ...

  8. 缓冲进度条或加载进度条

    缓冲进度条或加载进度条,在加载页面或者视频加载过程中,为了做到更好的UI及App功能体验交互,这些缓冲加载的等待效果是必不可少的: 下面来看一下旋转的动画效果:那么,他们的具体源码在这里:loadin ...

  9. C# PictureBox加载图片并显示进度条

    以前用winform的PictureBox时没有试过加载网络的图片,刚刚看到一段代码才了解到原来还有LoadAsync这个方法,可以异步加载图片,再加上LoadProgressChanged事件也可以 ...

最新文章

  1. nacos 配置动态刷新_nacos配置中心修改后刷新
  2. 【Linux】一步一步学Linux——zipinfo命令(69)
  3. 博客园使用latex编辑公式
  4. arm-2014.05 编译三星内核错误 “not support ARM mode ‘smc 0’ ”
  5. C语言 const 修饰指针 - C语言零基础入门教程
  6. 如何修改ant-input的高度_如何利用好Solidworks零件及装配体的多种配置方法?
  7. 分布式系统研发初体验
  8. iText的一些总结
  9. Idea快捷键大全(Windows)
  10. ITIL4-foundation学习和考试心得
  11. 【控制】人工势场法及人工势场函数
  12. 快速分割多个视频,生成每个视频的m3u8
  13. NowCoder--Protoss and Zerg
  14. 12V高耐压带ovp保护1A线性锂电池充电芯片DFN封装4056芯片
  15. 信心在生活中起到了什么样的作用
  16. 线搜索中的Armijo-Goldstein准则及Wolfe-Powell准则
  17. 什么是函数的副作用——理解js编程中函数的副作用
  18. jms(jms是什么意思的缩写)
  19. html5 localstorage 生命周期,cookie、localStorage和sessionStorage 三者之间的区别以及存储、获取、删除等使用方式...
  20. 破解Word密码保护的简单方法(转)

热门文章

  1. 银河麒麟龙芯v10sp1 解决qq不显示登录二维码
  2. 树莓派使用FlashFxp SSH 连接
  3. 选择恐惧症应对方法——以终为始来做选择
  4. Java国际化——ResourceBundle基本使用
  5. 浅谈VMware下安装Linux的网络设置 -- NAT
  6. Android实现半透明的AlertDialog
  7. java+springboot+ssm学生实习报告作业评分管理系统
  8. 《Buildozer打包实战指南》第五节 在安卓模拟器和真机上运行apk文件并查看日志
  9. GitHub 开源了多款字体「GitHub 热点速览 v.22.48」
  10. POJ-2001-Shortest Prefixes