代码添加ProgressBar 进度条
大家好 今天为大家分享代码中添加ProgressBar的例子 。当我们需要初始化程序或者联网获取数据 在数据库中查找数据时,这些需要耗费些时间的操作就需要进度条来提示用户有任务在进行,以免造成程序界面假死。 为什么要在代码中添加而不在布局里面添加呢,因为在代码里添加可以重复多次利用,免得没用到时就得在布局里添加,麻烦。
好了,下面我们来做个简单的Demo熟悉一下,
第一步:首先创建工程ProgressBarInsertLayoutinCode。
第二步:创建XMl 布局文件 我们就用自动创建的main.xml (在这里面只添加了一个Button)用来启动ProgressBar,代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/relative"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <Button android:id="@+id/button"
- android:text="Click me"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"/>
- </RelativeLayout>
第三步:修改ProgressBarInsertLayoutinCodeActivity代码,如下:(这里我们用到了Handler和Thread,用来更新ProgressBar的进度,这样就可以到一定是消除ProgressBar)
- package cn.li.progressbardemo;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- public class ProgressBarInsertLayoutinCodeActivity extends Activity {
- /** Called when the activity is first created. */
- private Button btn;
- private InsertProgressBar bar;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- bar = new InsertProgressBar(ProgressBarInsertLayoutinCodeActivity.this);
- btn = (Button)findViewById(R.id.button);
- btn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- bar.insertBar();
- }
- });
- }
- }
第四步:创建InsertProgressBar.java 此类创建了ProgressBar
- package cn.li.progressbardemo;
- import android.content.Context;
- import android.os.Handler;
- import android.os.Message;
- import android.view.View;
- import android.widget.ProgressBar;
- import android.widget.RelativeLayout;
- import android.widget.RelativeLayout.LayoutParams;
- public class InsertProgressBar {
- private RelativeLayout relative ;
- private ProgressBar bar;
- private ProgressBarInsertLayoutinCodeActivity context;
- private int rate = 0;
- protected static final int STOP = 0;
- protected static final int NEXT = 1;
- public InsertProgressBar(Context c) {
- super();
- context = (ProgressBarInsertLayoutinCodeActivity) c;
- relative = (RelativeLayout)context.findViewById(R.id.relative);
- bar = new ProgressBar(context);
- //设置ProgressBar的高宽和显示位置
- RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
- params.getRules()[RelativeLayout.CENTER_IN_PARENT] = RelativeLayout.TRUE;
- bar.setLayoutParams(params);
- }
- public void insertBar() {
- bar.setProgress(0);
- //当ProgressBar正在运行时就不再创建ProgressBar
- if(!bar.isShown()){
- bar.setVisibility(View.VISIBLE);
- relative.addView(bar);
- new MyThread().start();
- }
- }
- class MyThread extends Thread{
- @Override
- public void run() {
- super.run();
- try {
- for(int i=0;i<25;i++){
- rate = (i+1)*4;
- if(i!=24){
- Message msg = new Message();
- msg.what = NEXT;
- myhandler.sendMessage(msg);
- }else{
- Message msg = new Message();
- msg.what = STOP;
- myhandler.sendMessage(msg);
- }
- MyThread.sleep(200);
- }
- } catch (Exception e) {
- }
- }
- }
- //创建一个Handle 接收消息
- private Handler myhandler = new Handler(){
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- switch (msg.what) {
- case STOP:
- bar.setVisibility(View.GONE);
- relative.removeView(bar);
- Thread.currentThread().interrupt();
- break;
- case NEXT:
- bar.setProgress(rate);
- break;
- }
- }
- };
- }
OK,运行工程 效果如图
代码添加ProgressBar 进度条相关推荐
- VBA代码为ppt添加页码进度条
VBA代码为ppt添加页码进度条 fandroid 于 2015-05-25 15:31:28 发布 4617 已收藏 5 分类专栏: office 文章标签: vba ppt 版权 office ...
- android 自定义 进度条 旋转,Android_Android ProgressBar进度条使用详解,ProgressBar进度条,分为旋转进 - phpStudy...
Android ProgressBar进度条使用详解 ProgressBar进度条,分为旋转进度条和水平进度条,进度条的样式根据需要自定义,之前一直不明白进度条如何在实际项目中使用,网上演示进度条的案 ...
- android ProgressBar 进度条demo
ProgressBar Demo 进度条没有什么好讲解的,就是几个方法,熟悉了就ok.直接上代码. activity_main.xml <?xml version="1.0" ...
- Acitivity(页面)之间的跳转,ProgressBar 进度条,PopupWindow 弹出框,Dialog 对话框,Spinner下拉框
Acitivity(页面)之间的跳转 Acitivity(页面)之间的跳转需要使用到 Intent(意图) Intent intent = new Intent(MainActivity.this(从 ...
- android基础 [超级详细android常用控件解析(ScollView控件,ProgressBar进度条,PopupWindow控件)]
目录 1 章节目录 2 ScollView控件 2.1 ScrollView简介 2.2 ScrollView使用 2.3 常用属性及方法 3 ProgressBar进度条 3.1 简介 3.2 常用 ...
- ProgressBar(进度条)-常用属性讲解与基础实例
本节给大家带来的是Android基本UI控件中的ProgressBar(进度条),ProgressBar的应用场景很多,比如用户登录时,后台在发请求,以及等待服务器返回信息,这个时候会用到进度条:或者 ...
- Python使用tkinter库制作带有Laber标签、Entry文本框、Progressbar进度条、text日志框等元素的GUI操作界面
本文通过实例介绍Python的tkinter库的title.iconbitmap.geometry.attributes.grid等类的功能,并制作带有Laber标签.Entry文本框.Progres ...
- c#进度条刻度_c# ProgressBar进度条方向和美观
protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.Style | ...
- [Android]ProgressBar进度条
ProgressBar ProgressBar是进度条控件,ProgressBar的应用场景很多,比如用户登录时,后台发送请求,以及进行等待服务器返回信息等一些比较耗时的操作.这个时候如果没有提示,用 ...
最新文章
- Tengine AIFramework框架
- 5G URLLC — Overview
- C语言日志级别和作用,自己写的C语言通用日志框架,可以控制日志输出等级
- 人工智能学习--知识图谱的关键技术及其智能应用
- ArrayList和Vector的异同
- 自动采集壁纸的微信小程序
- python实现电脑程序自动化_python基于pywinauto实现PC客户端自动化
- 整理: JAVA错误处理集锦
- 重写DEV的DateEdit控件的类只选择年月
- ubuntu系统配置双网卡方法
- Jmeter测试——java测试脚本编写
- ajax实现直播功能,jquery实现直播弹幕效果
- 2021 区块链行业融资:资本涌入,触发区块链应用的无限可能| 2021 区块链年报|Footprint Analytics
- C# 关于dgv中DataGridViewComboBoxCell触发事件
- 整理了MariaDB和MySQL数据库历年发布版本和对应关系,方便记忆命令。
- jmeter 接口测试 签名_Jmeter之API接口签名验证测试
- Excel技巧—Excel也能P图抠图
- 第三节:带你详解Java的操作符,控制流程以及数组
- 数海信息集团CEO刘志欣2022年新年致辞:踔厉奋发 数智领航
- 计算机应用能力问题分析,浅析高职院校计算机应用基础教学的思考