android整合--progressbar

在做项目时经常会用到进度条,下面写了个进度条例子

main.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">
  <ProgressBar
  android:id="@+id/pro"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  style="@android:style/Widget.ProgressBar.Horizontal"
  >
  </ProgressBar>
  <TextView
  android:id = "@+id/tv"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="progress"
 
  >
  </TextView>
</LinearLayout>
java代码

package com.test.ui;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;

public class ProgressBarAc extends Activity {

	static int progress;
	ProgressBar  pro;
	TextView tv ;
	int prostatus = 0;
	Handler hand = new Handler();
	/* (non-Javadoc)
	 * @see android.app.Activity#onCreate(android.os.Bundle)
	 */
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.pro);
		pro = (ProgressBar)findViewById(R.id.pro);
		tv = (TextView)findViewById(R.id.tv);
		pro.setMax(100);
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				// TODO Auto-generated method stub
				while(prostatus<100){
					prostatus = dowork();
					hand.post(new Runnable() {
						
						@Override
						public void run() {
							// TODO Auto-generated method stub
							pro.setProgress(prostatus);
							tv.setText(prostatus+"");
						}
					});
				}
				hand.post(new Runnable() {
					
					@Override
					public void run() {
						// TODO Auto-generated method stub
						pro.setVisibility(View.GONE);
					}
				});
			}
			
			//do some work
			private int dowork(){
			  try {
			//		tv.setText(prostatus);
				Thread.sleep(1000);
			
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			  return ++progress;
			}
		}).start();
	}

	
}

在一个线程当中,run方法中主要处理进度条的显示,与文本显示,进度值改变在线程当中又创建了一个新方法,主要处理进度值变化。

上面例子显示为


另外我们可以改变进度条的样式,样式表如下

android 进度条的样式


 
例1:(默认样式(中等圆形))
Xml代码 
<ProgressBar  
    android:id="@+id/progressBar1" 
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
    /> 
例2:(超大圆形)
Xml代码 
<ProgressBar  
    android:id="@+id/progressBar2" 
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
    style="?android:attr/progressBarStyleLarge" 
    /> 
例3:(小号圆形)
Xml代码 
<ProgressBar  
    android:id="@+id/progressBar3" 
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
    style="?android:attr/progressBarStyleSmall" 
    /> 
例4:(标题小号圆形) 
Xml代码 
<ProgressBar  
    android:id="@+id/progressBar4" 
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
    style="?android:attr/progressBarStyleSmallTitle" 
    /> 
 
例4-在标题中使用小号圆形的使用代码:


 
Java代码 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //设置标题不确定性进度条风格 
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
    setContentView(R.layout.progress_bars); 
    //显示标题不确定性进度条 
    setProgressBarIndeterminateVisibility(true); 
    //关闭标题不确定性进度条 
    //setProgressBarIndeterminateVisibility(false); 

 
例5:(长方形进度条) 
Xml代码 
<ProgressBar  
    android:id="@+id/progressBar5" 
    android:layout_width="200dp"  
    android:layout_height="wrap_content"  
    style="?android:attr/progressBarStyleHorizontal" 
    android:max="100" 
    android:progress="50" 
    android:secondaryProgress="70" 
    /> 
 
            android:max="100" 最大进度值100
            android:progress="50" 当前初始化进度值50
            android:secondaryProgress="70" 当前初始化第2进度值70
 
 
例5-在标题中使用长方形进度条的代码:


Java代码 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
     
    //设置标题进度条风格 
    requestWindowFeature(Window.FEATURE_PROGRESS); 
    setContentView(R.layout.progress_bars); 
    //显示标题进度 
    setProgressBarVisibility(true); 
    //设置标题当前进度值为5000(标题进度最大值默认为10000) 
    setProgress(5000); 
    //关闭标题进度 
    //setProgressBarVisibility(false); 

 
例6:(进度对话框-圆形进度条)


Java代码 
ProgressDialog dialog = new ProgressDialog(this); 
//设置进度条风格,风格为圆形,旋转的 
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
//设置ProgressDialog 标题 
dialog.setTitle("进度对话框"); 
//设置ProgressDialog 提示信息 
dialog.setMessage("圆形进度条"); 
//设置ProgressDialog 标题图标 
dialog.setIcon(android.R.drawable.ic_dialog_map); 
//设置ProgressDialog 的一个Button 
dialog.setButton("确定", new ProgressDialog.OnClickListener(){ 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
         
    } 
}); 
//设置ProgressDialog 的进度条是否不明确 
dialog.setIndeterminate(false); 
//设置ProgressDialog 是否可以按退回按键取消 
dialog.setCancelable(true); 
//显示 
dialog.show(); 
 
例7:(进度对话框-长方形进度条)


Java代码 
ProgressDialog dialog = new ProgressDialog(this); 
//设置进度条风格,风格为圆形,旋转的 
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
//设置ProgressDialog 标题 
dialog.setTitle("进度对话框"); 
//设置ProgressDialog 提示信息 
dialog.setMessage("长方形进度条"); 
//设置ProgressDialog 标题图标 
dialog.setIcon(android.R.drawable.ic_dialog_alert); 
//设置ProgressDialog的最大进度 
dialog.setMax(100); 
//设置ProgressDialog 的一个Button 
dialog.setButton("确定", new ProgressDialog.OnClickListener(){ 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
         
    } 
}); 
//设置ProgressDialog 是否可以按退回按键取消 
dialog.setCancelable(true); 
//显示 
dialog.show(); 
 
//设置ProgressDialog的当前进度 
dialog.setProgress(50); 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值