十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这期内容当中小编将会给大家带来有关如何正确的使用ProgressBar与ProgessDialog,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

一、ProgressBar
1. 常用类型
1.1 不确定式圆形进度条
...
没有显示进度,可作为过场动画。有大、中、小三种大小,默认为中。
1.2 条形进度条
...
带有显示进度。
1.3 标题栏不确定式进度条
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); setProgressBarIndeterminateVisibility(true);
在标题栏右侧显示的无显示进度的圆形进度条。
1.4 标题栏条形进度条
requestWindowFeature(Window.FEATURE_PROGRESS); setProgressBarVisibility(true);
在标题栏顶部显示的条形进度条,可通过setProgess(int)设置当前进度,大值为10000。
2. 常用控件属性
android:max android:progress android:secondaryProgress android:indeterminate android:progressDrawable
3. 自定义样式
通过控件的android:progressDrawable属性引用自定义的drawable文件实现。一般需定义三个内容:背景、第一进度、第二进度。
范例:
贴张效果图:

4. 关键方法
//设置第一进度 setProgress(int) //设置第二进度 setSecondaryProgress(int) //获取第一进度 getProgress() //获取第二进度 getSecondaryProgress() //增加或减少第一进度 incrementProgressBy(int) //增加或减少第二进度 incrementSecondaryProgressBy(int) //获取进度大值 getMax()
5. 范例
布局比较简单,线性布局,竖直排列,这里就不贴代码了,直接贴张图:

Java:
public class ProgessBarActivity extends Activity implements View.OnClickListener{
private ProgressBar progressBar;
private TextView text;
private Button addFirst;
private Button addSecond;
private Button subFirst;
private Button subSecond;
private Button reset;
private int first;
private int second;
private int max;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_progess_bar);
init();
}
private void init() {
progressBar = (ProgressBar) findViewById(R.id.progress_bar);
text = (TextView) findViewById(R.id.text);
addFirst = (Button) findViewById(R.id.add_first);
subFirst = (Button) findViewById(R.id.sub_first);
addSecond = (Button) findViewById(R.id.add_second);
subSecond = (Button) findViewById(R.id.sub_second);
reset = (Button) findViewById(R.id.reset);
//获取第一、第二、大进度
first = progressBar.getProgress();
second = progressBar.getSecondaryProgress();
max = progressBar.getMax();
addFirst.setOnClickListener(this);
addSecond.setOnClickListener(this);
subFirst.setOnClickListener(this);
subSecond.setOnClickListener(this);
reset.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.add_first:
//第一进度加10
progressBar.incrementProgressBy(10);
break;
case R.id.add_second:
//第二进度加10
progressBar.incrementSecondaryProgressBy(10);
break;
case R.id.sub_first:
progressBar.incrementProgressBy(-10);
break;
case R.id.sub_second:
progressBar.incrementSecondaryProgressBy(-10);
break;
case R.id.reset:
//重置为初始数值
progressBar.setProgress(30);
progressBar.setSecondaryProgress(60);
break;
}
//更新文本内容
text.setText("第一进度为" + (int) (1.0*first/max*100) + "%,第二进度为" + (int) (1.0*second/max*100) + "%");
}
}二、ProgressDialog
1. 构造函数
ProgressDialog(Context context) ProgressDialog(Context context, int theme)//theme为对话框样式
2. 关键方法
//设置进度条样式 setProgressStyle(int style) //设置对话框标题 setTitle(String title) //设置对话框本文信息 setMessage(CharSequence message) //设置对话框图标 setIcon(Drawable d) //设置按钮,whichButton为按钮类型,text为按钮名称,listener为监听器 setButton(int whichButton, CharSequence text, OnClickListener listener) //显示对话框 show()
此外,除了这几个方法,ProgressDialog也可使用上面ProgressBar中介绍的方法。
3. 范例
public class ProgressDialogActivity extends Activity {
private ProgressDialog proDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_progress_dialog);
findViewById(R.id.show).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//新建对话框
proDialog = new ProgressDialog(ProgressDialogActivity.this);
//设置进度条样式
proDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//设置对话框标题
proDialog.setTitle("初识ProgressDialog");
//设置提示对话框文本
proDialog.setMessage("好好学习,天天向上!");
//设置对话框显示图标
proDialog.setIcon(R.drawable.ic_launcher);
//设置进度条大进度,默认为10000
proDialog.setMax(100);
//设置初始第一进度
proDialog.incrementProgressBy(30);
//设定取消按钮
proDialog.setButton(DialogInterface.BUTTON_POSITIVE, "取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
//显示对话框
proDialog.show();
}
});
}
}上述就是小编为大家分享的如何正确的使用ProgressBar与ProgessDialog了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。