android ProgressBar(进度条)

ProgressBar01.java:

 

package com.ProgressBar01;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.ProgressBar;

public class ProgressBar01 extends Activity {
 private ProgressBar mProgressBar1;
 private ProgressBar mProgressBar2;
 private Button mButton01;
 protected static final int GUI_STOP_NOTIFIER=0x108;
 protected static final int GUI_THREADING_NOTIFIER=0x109;
 public int intCounter=0;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置窗口模式,需要显示进度条在标题栏
        requestWindowFeature(Window.FEATURE_PROGRESS);
        setProgressBarVisibility(true);
        setContentView(R.layout.main);
       
        mProgressBar1=(ProgressBar)findViewById(R.id.ProgressBar1);
        mProgressBar2=(ProgressBar)findViewById(R.id.ProgressBar2);
        mButton01=(Button)findViewById(R.id.Button01);
       
        mProgressBar1.setIndeterminate(false);
        mProgressBar2.setIndeterminate(false);
       
        mButton01.setOnClickListener(new Button.OnClickListener()
        {
         @Override
         public void onClick(View v)
         {
          //设置ProgressBar为可见状态
          mProgressBar1.setVisibility(View.VISIBLE);
          mProgressBar2.setVisibility(View.VISIBLE);
          //设置ProgressBar的最大值
          mProgressBar1.setMax(100);
          //设置ProgressBar当前值
          mProgressBar1.setProgress(0);
          mProgressBar2.setProgress(0);
          
          //通过线程来改变ProgressBar的值
          new Thread(new Runnable(){
           public void run()
           {
            for(int i=0;i<10;i++)
            {
             try
             {
              intCounter=(i+1)*20;
              Thread.sleep(1000);
                        
              if(i==4)
              {
               Message m=new Message();
               
               m.what=ProgressBar01.GUI_STOP_NOTIFIER;
               ProgressBar01.this.myMessageHandler.sendMessage(m);
               break;
              }
              else
              {
               Message m=new Message();
               m.what=ProgressBar01.GUI_THREADING_NOTIFIER;
               ProgressBar01.this.myMessageHandler.sendMessage(m);
              }
             }
             catch(Exception e)
             {
              e.printStackTrace();
             }
            }
           }
          }).start();
         }
        });
    }
   
    Handler myMessageHandler=new Handler()
    {
     public void handleMessage(Message msg)
     {
      switch(msg.what)
      {
      //ProgressBar已经是最大值
      case ProgressBar01.GUI_STOP_NOTIFIER:
       mProgressBar1.setVisibility(View.GONE);
       mProgressBar2.setVisibility(View.GONE);
       Thread.currentThread().isInterrupted();
       break;
      case ProgressBar01.GUI_THREADING_NOTIFIER:
       if(!Thread.currentThread().isInterrupted())
       {
        //改变ProgressBar的当前值
        mProgressBar1.setProgress(intCounter);
        mProgressBar2.setProgress(intCounter);
        
        //设置标题栏中前景的一个进度条进度值
        setProgress(intCounter*100);
        //设置标题栏中后面的一个进度条进度值
        setSecondaryProgress(intCounter*100);
       }
       break;
      }
      super.handleMessage(msg);
     }
    };
}

 

 

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"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
<ProgressBar
 android:id="@+id/ProgressBar1"
 style="?android:attr/progressBarStyleHorizontal"
 android:layout_width="200dp"
 android:layout_height="wrap_content"
 android:visibility="gone"
 />
<ProgressBar
 android:id="@+id/ProgressBar2"
 android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="?android:attr/progressBarStyleLarge"
    android:max="100"
    android:progress="50"
    android:secondaryProgress="70"
    android:visibility="gone"
    />
<Button
 android:id="@+id/Button01"
 android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="begin"
    />
</LinearLayout>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值