1、activity_progressbar.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="两种进度条演示:" />

<ProgressBar
        android:id="@+id/progressBar_horizontal"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:visibility="gone" />

<ProgressBar
        android:id="@+id/progressBar_large"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:max="100"
        android:progress="50"
        android:secondaryProgress="70"
        android:visibility="gone" />

<Button
        android:id="@+id/btn_pb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开始" />

</LinearLayout>

2、ProgressbarActivity.java

public class ProgressbarActivity extends Activity {
    // 声明progressbar对象
    private ProgressBar progressBar_horizontalBar;
    private ProgressBar progressBar_largeBar;
    private Button btn_pb;
    protected static final int GUI_STOP_NOTIFIER = 0X108;
    protected static final int GUI_THREADING_NOTIFIER = 0X109;
    public int counter = 0;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 设置窗口模式,因为需要显示进度条在标题栏
        requestWindowFeature(Window.FEATURE_PROGRESS);
        setProgressBarVisibility(true);
        setContentView(R.layout.activity_progressbar);
        progressBar_horizontalBar = (ProgressBar) findViewById(R.id.progressBar_horizontal);
        progressBar_largeBar = (ProgressBar) findViewById(R.id.progressBar_large);
        btn_pb = (Button) findViewById(R.id.btn_pb);
        /*
         * 貌视不明确就是滚动条的当前值自动在最小到最大值之间来回移动,形成这样一个动画效果,这个只是告诉别人“我正在工作”,但不能提示工作进度到哪个阶段
         * 。主要是在进行一些无法确定操作时间的任务时作为提示。而“明确”就是根据你的进度可以设置现在的进度值。
         */
        progressBar_horizontalBar.setIndeterminate(false);
        progressBar_largeBar.setIndeterminate(false);
        btn_pb.setOnClickListener(new Button.OnClickListener() {

@Override
            public void onClick(View v) {
                // 设置progressBar为可见状态
                progressBar_horizontalBar.setVisibility(View.VISIBLE);
                progressBar_largeBar.setVisibility(View.VISIBLE);
                // 设置progressBar的最大值
                progressBar_horizontalBar.setMax(100);
                // 设置ProgressBar的当前值
                progressBar_horizontalBar.setProgress(0);
                progressBar_largeBar.setProgress(0);
                // 通过线程改变ProgressBar的值
                new Thread(new Runnable() {

@Override
                    public void run() {
                        for (int i = 0; i < 10; i++) {
                            try {
                                counter = (i + 1) * 20;
                                Thread.sleep(1000);
                                if (i==4) {
                                    Message m=new Message();
                                    m.what=ProgressbarActivity.GUI_STOP_NOTIFIER;
                                    ProgressbarActivity.this.handler.sendMessage(m);
                                    break;
                                }else {
                                    Message m=new Message();
                                    m.what=ProgressbarActivity.GUI_THREADING_NOTIFIER;
                                    ProgressbarActivity.this.handler.sendMessage(m);
                                }
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }

}
                }).start();

}
        });

}
    Handler handler=new Handler(){
        public void     handleMessage(Message msg) {
            switch (msg.what) {
            case ProgressbarActivity.GUI_STOP_NOTIFIER:
                progressBar_horizontalBar.setVisibility(View.GONE);
                progressBar_largeBar.setVisibility(View.GONE);
                //到达最大值终止线程运行
                Thread.currentThread().interrupt();
                break;
            case ProgressbarActivity.GUI_THREADING_NOTIFIER:
                if (!Thread.currentThread().isInterrupted()) {
                    //改变进度条的值
                    progressBar_horizontalBar.setProgress(counter);
                    progressBar_largeBar.setProgress(counter);
                    //设置标题栏中前景的一个进度条的进度值
                    setProgress(counter*100);
                    //设置标题栏中后面的一个进度条进度值
                    setSecondaryProgress(counter*100);
                }
                break;
            }
            super.handleMessage(msg);
        }
    };

}

Android——进度条ProgressBar的更多相关文章

  1. Android 自学之进度条ProgressBar

    进度条(ProgressBar)也是UI界面中的一种非常使用的组件,通常用于向用户显示某个耗时完成的百分比.因此进度条可以动态的显示进度,因此避免长时间地执行某个耗时操作时,让用户感觉程序失去了响应, ...

  2. android圆形进度条ProgressBar颜色设置

    花样android Progressbar http://www.eoeandroid.com/thread-1081-1-1.html http://www.cnblogs.com/xirihanl ...

  3. Android零基础入门第51节:进度条ProgressBar

    原文:Android零基础入门第51节:进度条ProgressBar 不知不觉这已经是第51期了,在前面50期我们学了Android开发中使用频率非常高的一些UI组件,当然这些组件还不足够完成所有AP ...

  4. Android 进度条

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  5. android进度条

    android进度条 1.达到的效果 2.布局代码 先写一个my_browser.xml文件 存放WebView <?xml version="1.0" encoding=& ...

  6. Android-SpinKit 进度条 (ProgressBar)

    项目地址: https://github.com/ybq/Android-SpinKit 类别: 进度条 (ProgressBar) 打分: ★★★★★ 更新: 2016-03-28 11:17 大小 ...

  7. 进度条ProgressBar

    在本节中,作者只写出了进度条的各种样式,包括圆形.条形,还有自定义的条形,我想如果能让条形进度条走满后再继续从零开始,于是我加入了一个条件语句.作者的代码中需要学习的是handler在主线程和子线程中 ...

  8. Xamarin XAML语言教程构建进度条ProgressBar

    Xamarin XAML语言教程构建进度条ProgressBar Xamarin XAML语言教程构建进度条ProgressBar,ProgressBar被称为进度条,它类似于没有滑块的滑块控件.进度 ...

  9. 多种的android进度条的特效源码

    多种的android进度条的特效源码,这个源码是在源码天堂那个网站上转载过来的,我已经修改一部分了,感觉很实用的,大家可以学习一下吧,我就不上传源码了,大家可以直接到那个网站上下载吧. 源码天堂下载地 ...

随机推荐

  1. smarty函数

    内置函数(重要的几个): <{html_checkboxes name='nation' values=$code output=$name selected=$selid separator= ...

  2. C#利用Windows API 实现关机、注销、重启等操作

    using System; using System.Text; using System.Diagnostics; using System.Runtime.InteropServices; nam ...

  3. 使用 OWIN 作为 ASP.NET Web API 的宿主

    使用 OWIN 作为 ASP.NET Web API 的宿主 ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动 设备)的 HTTP 服务. ASP.NET ...

  4. 【转】JVM 分代GC策略分析

    我们以Sun HotSpot VM来进行分析,首先应该知道,如果我们没有指定任何GC策略的时候,JVM默认使用的GC策略.Java虚拟机是按照分代的方式来回收垃圾空间,我们应该知道,垃圾回收主要是针对 ...

  5. Access数据库连接方式

    网络连接:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\server\share\folder\myAccessFile.accdb;标准安全:Pro ...

  6. 20160720-java高并发

    https://www.zhihu.com/search?type=content&q=tomcat+%E8%83%BD%E6%94%AF%E6%8C%81%E5%A4%9A%E5%B0%91 ...

  7. [Java Web – 3A] – Spring MVC开发注意事项

    1.使用Maven构建项目 2.SpringMVC 绝对路径的问题 首先要明确一点,在html中,资源文件也是有自己的URL,即href中是支持绝对路径.如下代码: <link href=&qu ...

  8. windows下boost库的基本使用方法

    因为boost都是使用模板的技术,所以所有代码都是写在一个.hpp头文件中.这样boost中的大部分内容是不需要编译生成相应的链接库,只需要设置下面的包含目录(或者设置一下环境变量),在源文件中包含相 ...

  9. ADF_Starting系列2_使用ADF开发富Web应用程序之建立Business Services

    2013-05-01 Created By BaoXinjian

  10. [实变函数]2.2 聚点 (cluster point), 内点 (interior point), 界点 (boundary point)

    设 $E\subset \bbR^n, P_0\in \bbR^n$. 1 若 $\exists\ U(P_0)\subset E$, 则称 $P_0$ 为 $E$ 的内点 (interior poi ...