老生常谈ProgressBar、ProgessDialog的用法

老生常谈ProgressBar、ProgessDialog的用法,第1张

概述一、ProgressBar1.常用类型1.1不确定式圆形进度条style=\"@android:style/Widget.Holo.Light.ProgressBar\"

一、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<!--置是否精确显示;true为不精确,false为精确-->androID:indeterminate<!--加载自定义样式-->androID:progressDrawable

3. 自定义样式

通过控件的androID:progressDrawable属性引用自定义的drawable文件实现。一般需定义三个内容:背景、第一进度、第二进度。

范例:

<?xml version="1.0" enCoding="utf-8"?><@R_579_3419@ xmlns:androID="http://schemas.androID.com/apk/res/androID">  <!--背景样式-->  <item androID:ID="@androID:ID/background">    <shape>      <!--圆角-->      <corners androID:radius="10dip" />      <!--填充色-->      <solID androID:color="#dddddd" />    </shape>  </item>  <!--第二进度样式-->  <item androID:ID="@androID:ID/secondaryProgress">    <clip>      <shape>        <corners androID:radius="10dip" />        <solID androID:color="#78bb78" />      </shape>    </clip>  </item>  <!--第一进度样式-->  <item androID:ID="@androID:ID/progress">    <clip>      <shape>        <corners androID:radius="10dip" />        <solID androID:color="#55bb55" />      </shape>    </clip>  </item></@R_579_3419@>

贴张效果图:

@H_404_81@

4. 关键方法

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

5. 范例

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

@H_404_81@

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的用法全部内容,希望文章能够帮你解决老生常谈ProgressBar、ProgessDialog的用法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1145847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存