ProgressBar位于android.widget包下,其继承于View,主要用于显示一些操作的进度。应用程序可以修改其长度表示当前后台操作的完成情况。因为进度条会移动,所以长时间加载某些资源或者执行某些耗时的操作时,不会使用户界面失去响应。ProgressBar类的使用非常简单,只需将其显示到前台,然后启动一个后台线程定时更改表示进度的数值即可。

以下ProgressBar跟Handle结合,模拟进度条的使用,当进度条完成时会跳转到TestActivity

main.xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><!-- 长方形进度条,一开始不可见,直到点击按钮时才出现进度条 --><ProgressBar android:id="@+id/progressBar"style="?android:attr/progressBarStyleHorizontal"mce_style="?android:attr/progressBarStyleHorizontal"android:layout_width="fill_parent"android:layout_height="wrap_content"android:visibility="gone"android:max="100" /><!-- 圆形进度条 --><!--<ProgressBar android:id="@+id/progressBar"style="?android:attr/progressBarStyleLarge"mce_style="?android:attr/progressBarStyleLarge"android:layout_width="wrap_content"android:layout_height="wrap_content" />--><Button android:id="@+id/start" android:text="启动进度条"android:layout_width="wrap_content"android:layout_height="wrap_content" /><Button android:id="@+id/stop" android:text="停止进度条"android:layout_width="wrap_content"android:layout_height="wrap_content" />
</LinearLayout>

PbActivity类:

package com.ljq.pb;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;public class PbActivity extends Activity {private ProgressBar progressBar = null;private Button start = null, stop = null;// 定义Handler对象private Handler handler = new Handler();@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);progressBar = (ProgressBar) findViewById(R.id.progressBar);progressBar.setProgress(0);start = (Button) findViewById(R.id.start);start.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {handler.post(runnable); //开始执行
            }});stop=(Button)findViewById(R.id.stop);stop.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {handler.removeCallbacks(runnable);//停止执行progressBar.setProgress(0);}});}int pro=0;Runnable runnable=new Runnable(){public void run() {progressBar.setVisibility(View.VISIBLE);pro=progressBar.getProgress()+10;progressBar.setProgress(pro);//如果进度小于100,,则延迟1000毫秒后重复执行runnableif(pro<100){handler.postDelayed(runnable, 1000);}else{progressBar.setVisibility(View.GONE);startActivity(new Intent(PbActivity.this, TestActivity.class));handler.removeCallbacks(runnable);progressBar.setProgress(0);}}};
}

运行结果:

转载于:https://www.cnblogs.com/tryingx/articles/3787863.html

Android软件开发-ProgressBar相关推荐

  1. Android软件开发之盘点自定义View界面大合集(二)

    Android软件开发之盘点自定义View界面大合集(二) - 雨松MOMO的程序世界 - 51CTO技术博客 雨松MOMO带大家盘点Android 中的自定义View界面的绘制 今天我用自己写的一个 ...

  2. 李开复谏言学生转学Android软件开发

    5月13日消息,随着采用Android系统的谷歌手机.平板电脑等产品逐渐扩大市场占有率,Android平台人才的缺口日益显现.据业内统计,目前国内的3G研发人才缺口有三.四百万,其中Android研发 ...

  3. Android游戏开发Android软件开发【教程三十篇】

    Android软件开发之发送短信与系统短信库解析(三十)  New Android软件开发之获取通讯录联系人信息(二十九)  New Android软件开发之PreferenceActivity中的组 ...

  4. 面向 Android 软件开发套件(SDK)的 x86 Android* 系统映像许可协议

    英特尔公司面向 Android 软件开发套件(SDK)的 x86 Android* 系统映像的内部评估许可协议 此<内部评估许可协议>(以下简称"协议") 的订立双方为 ...

  5. 英特尔公司面向 Android 软件开发套件(SDK)4.3 的 x86 Android* 系统映像的内部评估许可协议...

    此<内部评估许可协议>(以下简称"协议") 的订立双方为英特尔与贵方(作为开发人员个人或法律实体 - 下文认定为"接收方"). 英特尔应根据< ...

  6. 在Android软件开发教学过程中应当注意的事项总结

    近些年来,为了提升学生就业率和收入水平,某些高校或培训机构将Android软件开发当做一门专业学科.Android学科的主要目标是培养学生快速掌握Android开发基本知识和技能,以便于学生利用掌握的 ...

  7. Android软件开发用什么语言?

    C++没学过,Java懂一些,Javascript精通(不过肯定是不可能用这个的) 想学Android软件开发,用Java可以吗?相对C++会不会有功能上的限制? 如果是Java,那我当当上搜索了一下 ...

  8. Android软件开发之盘点界面五大布局(十六)

    Android软件开发之盘点界面五大布局 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archive ...

  9. Android软件开发Log实时查看方式(无需数据线)

    转: Android软件开发Log实时查看方式(无需数据线) 场景 在做Android软件开发的时候,查看实时Log是有效的debug方式之一,如果软件只关联到一部手机,那使用IDE的log查看工具或 ...

最新文章

  1. python网络爬虫工程师薪资-月薪2万的爬虫工程师,Python需要学到什么程度?
  2. 动态代理——事务处理
  3. LVM--逻辑卷管理
  4. 记次浙大月赛 134 - ZOJ Monthly, June 2014
  5. [VSCode] 编辑 markdown 推荐插件
  6. 细算经典网游私服新作下刀的“手术”
  7. VS2019安装智能提示番茄助手VAssistX
  8. 图解通信原理与案例分析-11:无线调幅广播电台AM案例--天线以及高频信号的发送
  9. C# winform程序调用屏幕键盘
  10. crc循环冗余校验码c语言,CRC循环冗余校验码的生成
  11. windows添加虚拟机蓝屏的解决方法
  12. 福大软工1816 · 团队现场编程实战(抽奖系统)
  13. Incorrect string value: '\xE5\xA4\xA7\xE5\xB9\x85...' for column' name' at row 1的解决方法
  14. java计算机毕业设计springboot+vue城市轨道交通线路查询系统-公交车线路查询
  15. C语言入门(一)——程序的基本概念
  16. 总线功能模型 BFM
  17. wamp下localhost目录Your Projects下项目无法打开解决方案
  18. 双软认证企业税收优惠政策
  19. 电气系统中防雷接地保护的综合解决方案
  20. matlab error 15,为什么我遇到了“License Manager Error -15”的错误?

热门文章

  1. 我的docker随笔10:docker客户端使用其它主机的docker服务器
  2. 红旗linux挂载硬盘命令,红旗6sp1修改默认挂载的硬盘分区
  3. 【Flink】Flink 报错 flink 1.12.5 启动作业报 partition not found
  4. Java : ServiceLoader详解
  5. 95-235-050-源码-task-Flink task之间的数据交换
  6. 12-Java读写CSV格式文件(opencsv)
  7. 18-elasticsearch集群健康为黄色
  8. 大数据面试-02-大数据工程师面试题
  9. 面试经常被问到这 4 大开源框架,必须得好好研究一下了!
  10. 据说,80%的人没有真正理解了Spring的依赖注入