成都网站建设设计

将想法与焦点和您一起共享

ProgressBar、ProgessDialog-用法(详解)

一、ProgressBar

成都创新互联是一家以网站建设公司、网页设计、品牌设计、软件运维、seo优化、小程序App开发等移动开发为一体互联网公司。已累计为成都活动板房等众行业中小客户提供优质的互联网建站和软件开发服务。

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文件实现。一般需定义三个内容:背景、第一进度、第二进度。

范例:

<?xml version="1.0" encoding="utf-8"?>


  
  
    
      
      
      
      
    
  

  
  
    
      
        
        
      
    
  

  
  
    
      
        
        
      
    
  

贴张效果图:

ProgressBar、ProgessDialog-用法(详解)

4. 关键方法

//设置第一进度
setProgress(int)
//设置第二进度
setSecondaryProgress(int)
//获取第一进度
getProgress()
//获取第二进度
getSecondaryProgress()
//增加或减少第一进度
incrementProgressBy(int)
//增加或减少第二进度
incrementSecondaryProgressBy(int)
//获取进度最大值
getMax()

5. 范例

布局比较简单,线性布局,竖直排列,这里就不贴代码了,直接贴张图:

ProgressBar、ProgessDialog-用法(详解)

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-用法(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持创新互联。


分享名称:ProgressBar、ProgessDialog-用法(详解)
浏览地址:http://chengdu.cdxwcx.cn/article/pchsgi.html