ProgressBar的显示风格:
1、在xml文件中设置ProgressBar的显示风格:
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
style=”?android:attr/progressBarStyleLarge” 大圆形进度条
style=”?android:attr/progressBarStyleSmall” 小圆形进度条
style=”@android:style/Widget.ProgressBar.Horizontal” 水平进度条
不设置则默认中圆形进度条
2、在标题栏上设置进度条:
//加载有精确进度的进度条
requestWindowFeature(Window.FEATURE_PROGRESS);
//加载无精确进度的进度条requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
// 显示有精确进度的进度条
setProgressBarVisibility(true);
// 显示无精确进度的进度条
setProgressBarIndeterminateVisibility(true);
public class MainActivity extends Activity implements OnClickListener {
private ProgressBar progress;
private Button add;
private Button reduce;
private Button reset;
private TextView text;
private ProgressDialog prodialog;
private Button show;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在标题栏上显示进度条
// 启用窗口特征,启用带进度和不带进度的进度条
requestWindowFeature(Window.FEATURE_PROGRESS);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.main);
// 显示两种进度条
setProgressBarVisibility(true);
setProgressBarIndeterminateVisibility(false);
// Max=10000
setProgress(9999);
init();
}
private void init() {
// TODO Auto-generated method stub
progress = (ProgressBar) findViewById(R.id.horiz);
add = (Button) findViewById(R.id.add);
reduce = (Button) findViewById(R.id.reduce);
reset = (Button) findViewById(R.id.reset);
text = (TextView) findViewById(R.id.text);
show=(Button) findViewById(R.id.show);
show.setOnClickListener(this);
// 获取第一进度条的进度
int first = progress.getProgress();
// 获取第二进度条的进度
int second = progress.getSecondaryProgress();
// 获取进度条的最大进度
int max = progress.getMax();
text.setText("第一进度百分比:" + (int) (first / (float) max * 100)
+ "% 第二进度百分比:" + (int) (second / (float) max * 100) + "%");
add.setOnClickListener(this);
reduce.setOnClickListener(this);
reset.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.add: {
// 增加第一进度和第二进度10个刻度
progress.incrementProgressBy(10);
progress.incrementSecondaryProgressBy(10);
break;
}
case R.id.reduce: {
// 减少第一进度和第二进度10个刻度
progress.incrementProgressBy(-10);
progress.incrementSecondaryProgressBy(-10);
break;
}
case R.id.reset: {
progress.setProgress(50);
progress.setSecondaryProgress(80);
break;
}
case R.id.show:
{
/**
* 页面显示风格
*/
//新建ProgressDialog对象
prodialog=new ProgressDialog(MainActivity.this);
//设置显示风格
prodialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//设置标题
prodialog.setTitle("幕课网");
//设置对话框里的文字信息
prodialog.setMessage("欢迎大家支持幕课网");
//设置图标
prodialog.setIcon(R.drawable.ic_launcher);
/**
* 设定关于ProgressBar的一些属性
*/
//设定最大进度
prodialog.setMax(100);
//设定初始化已经增长到的进度
prodialog.incrementProgressBy(50);
//进度条是明确显示进度的
prodialog.setIndeterminate(false);
/**
* 设定一个确定按钮
*/
prodialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "欢迎大家支持幕课网", Toast.LENGTH_SHORT).show();
}
});
//是否可以通过返回按钮退出对话框
prodialog.setCancelable(true);
//显示ProgressDialog
prodialog.show();
break;
}
}
text.setText("第一进度百分比:"+ (int) (progress.getProgress() / (float) progress.getMax() * 100)+ "% 第二进度百分比:"+ (int) (progress.getSecondaryProgress()/ (float) progress.getMax() * 100) + "%");
}
}
3、ProgressBar关键属性和方法:
属性:
android:max=”100” 进度条总值
android:progress=”50” 第一进度条的值
android:secondaryProgress=”80” 第二进度条的值
注意:false为显示精确进度,true则为不显示精确进度。
方法:
progressBar.setMax(100); 设置进度条总值
progressBar.setProgress(50);设置第一进度条的值
progressBar.setSecondaryProgress(80);设置第二进度条的值
progressBar.setIndeterminate(false); 设置是否显示精确进度、
progressBar.getProgress();获取第一进度条的值
progressBar.getMax( );获取进度条总值
ProgressBar.getSecondaryProgress ( );获取第二进度条的值
4、ProgressDialog 对话框弹出形式的进度条
/**
* 页面显示风格
*/
//新建ProgressDialog对象
prodialog=new ProgressDialog(MainActivity.this);
//设置显示风格
prodialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//设置标题
prodialog.setTitle("幕课网");
//设置对话框里的文字信息
prodialog.setMessage("欢迎大家支持幕课网");
//设置图标
prodialog.setIcon(R.drawable.ic_launcher);
/**
* 设定关于ProgressBar的一些属性
*/
//设定最大进度
prodialog.setMax(100);
//设定初始化已经增长到的进度
prodialog.incrementProgressBy(50);
//进度条是明确显示进度的
prodialog.setIndeterminate(false);
/**
* 设定一个确定按钮
*/
prodialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "欢迎大家支持幕课网", Toast.LENGTH_SHORT).show();
}
});
//是否可以通过返回按钮退出对话框
prodialog.setCancelable(true);
//注意:记得调用show方法显示ProgressDialog
prodialog.show();
5、自定义ProgressBar的样式:
在res文件夹下面新建一个layout文件夹然后把自定义的xml文件放进去,然后就可以:android:progressDrawable=”@drawable/progress_bar”去覆盖系统默认的progressDrawable