一、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的用法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)