Android软件开发-ProgressBar
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相关推荐
- Android软件开发之盘点自定义View界面大合集(二)
Android软件开发之盘点自定义View界面大合集(二) - 雨松MOMO的程序世界 - 51CTO技术博客 雨松MOMO带大家盘点Android 中的自定义View界面的绘制 今天我用自己写的一个 ...
- 李开复谏言学生转学Android软件开发
5月13日消息,随着采用Android系统的谷歌手机.平板电脑等产品逐渐扩大市场占有率,Android平台人才的缺口日益显现.据业内统计,目前国内的3G研发人才缺口有三.四百万,其中Android研发 ...
- Android游戏开发Android软件开发【教程三十篇】
Android软件开发之发送短信与系统短信库解析(三十) New Android软件开发之获取通讯录联系人信息(二十九) New Android软件开发之PreferenceActivity中的组 ...
- 面向 Android 软件开发套件(SDK)的 x86 Android* 系统映像许可协议
英特尔公司面向 Android 软件开发套件(SDK)的 x86 Android* 系统映像的内部评估许可协议 此<内部评估许可协议>(以下简称"协议") 的订立双方为 ...
- 英特尔公司面向 Android 软件开发套件(SDK)4.3 的 x86 Android* 系统映像的内部评估许可协议...
此<内部评估许可协议>(以下简称"协议") 的订立双方为英特尔与贵方(作为开发人员个人或法律实体 - 下文认定为"接收方"). 英特尔应根据< ...
- 在Android软件开发教学过程中应当注意的事项总结
近些年来,为了提升学生就业率和收入水平,某些高校或培训机构将Android软件开发当做一门专业学科.Android学科的主要目标是培养学生快速掌握Android开发基本知识和技能,以便于学生利用掌握的 ...
- Android软件开发用什么语言?
C++没学过,Java懂一些,Javascript精通(不过肯定是不可能用这个的) 想学Android软件开发,用Java可以吗?相对C++会不会有功能上的限制? 如果是Java,那我当当上搜索了一下 ...
- Android软件开发之盘点界面五大布局(十六)
Android软件开发之盘点界面五大布局 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archive ...
- Android软件开发Log实时查看方式(无需数据线)
转: Android软件开发Log实时查看方式(无需数据线) 场景 在做Android软件开发的时候,查看实时Log是有效的debug方式之一,如果软件只关联到一部手机,那使用IDE的log查看工具或 ...
最新文章
- python网络爬虫工程师薪资-月薪2万的爬虫工程师,Python需要学到什么程度?
- 动态代理——事务处理
- LVM--逻辑卷管理
- 记次浙大月赛 134 - ZOJ Monthly, June 2014
- [VSCode] 编辑 markdown 推荐插件
- 细算经典网游私服新作下刀的“手术”
- VS2019安装智能提示番茄助手VAssistX
- 图解通信原理与案例分析-11:无线调幅广播电台AM案例--天线以及高频信号的发送
- C# winform程序调用屏幕键盘
- crc循环冗余校验码c语言,CRC循环冗余校验码的生成
- windows添加虚拟机蓝屏的解决方法
- 福大软工1816 · 团队现场编程实战(抽奖系统)
- Incorrect string value: '\xE5\xA4\xA7\xE5\xB9\x85...' for column' name' at row 1的解决方法
- java计算机毕业设计springboot+vue城市轨道交通线路查询系统-公交车线路查询
- C语言入门(一)——程序的基本概念
- 总线功能模型 BFM
- wamp下localhost目录Your Projects下项目无法打开解决方案
- 双软认证企业税收优惠政策
- 电气系统中防雷接地保护的综合解决方案
- matlab error 15,为什么我遇到了“License Manager Error -15”的错误?
热门文章
- 我的docker随笔10:docker客户端使用其它主机的docker服务器
- 红旗linux挂载硬盘命令,红旗6sp1修改默认挂载的硬盘分区
- 【Flink】Flink 报错 flink 1.12.5 启动作业报 partition not found
- Java : ServiceLoader详解
- 95-235-050-源码-task-Flink task之间的数据交换
- 12-Java读写CSV格式文件(opencsv)
- 18-elasticsearch集群健康为黄色
- 大数据面试-02-大数据工程师面试题
- 面试经常被问到这 4 大开源框架,必须得好好研究一下了!
- 据说,80%的人没有真正理解了Spring的依赖注入