一、ProgressBar

1. 常用类型
1.1 不确定式圆形进度条
style="@android:style/Widget.Holo.Light.ProgressBar" style="@android:style/Widget.DeviceDefault.Light.ProgressBar.Large" ...
没有显示进度,可作为过场动画。有大、中、小三种大小,默认为中。
1.2 条形进度条
style="@android:style/Widget.ProgressBar.Horizontal" style="@android:style/Widget.DeviceDefault.Light.ProgressBar.Horizontal" ...
带有显示进度。
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"?>
<layer-list 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>
</layer-list>
贴张效果图:
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的用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# ProgressBar
# ProgessDialog用法
# Android ProgressDialog进度条使用详解
# Android 七种进度条的样式
# Android 中通过实现线程更新Progressdialog (对话进度条)
# 解析android中ProgressBar的用法
# Android ProgressBar进度条使用详解
# 进度条ProgressBar及ProgressDialog(实例)
# 对话框
# 进度条
# 自定义
# 标题栏
# 给大家
# 不确定
# 默认为
# 就不
# 老生常谈
# 也可
# 希望能
# 三种
# 天天向上
# 这篇
# 可通过
# 这几个
# 小编
# 值为
# 大家多多
# 好好学习
相关文章:
建站之星代理费用多少?最新价格详情介绍
小程序网站制作需要准备什么资料,如何制作小程序?
清除minerd进程的简单方法
中山网站制作网页,中山新生登记系统登记流程?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何通过网站建站时间优化SEO与用户体验?
如何快速查询网站的真实建站时间?
深圳网站制作案例,网页的相关名词有哪些?
如何用腾讯建站主机快速创建免费网站?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
如何在Windows服务器上快速搭建网站?
如何在Windows环境下新建FTP站点并设置权限?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
微信小程序 input输入框控件详解及实例(多种示例)
音乐网站服务器如何优化API响应速度?
C#怎么使用委托和事件 C# delegate与event编程方法
如何在腾讯云服务器快速搭建个人网站?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
如何配置IIS站点权限与局域网访问?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
临沂网站制作公司有哪些,临沂第四中学官网?
如何制作算命网站,怎么注册算命网站?
建站之星如何快速解决建站难题?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何快速选择适合个人网站的云服务器配置?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
如何做网站制作流程,*游戏网站怎么搭建?
如何基于PHP生成高效IDC网络公司建站源码?
如何选择网络建站服务器?高效建站必看指南
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
常州企业建站如何选择最佳模板?
个人摄影网站制作流程,摄影爱好者都去什么网站?
如何在建站主机中优化服务器配置?
深圳网站制作的公司有哪些,dido官方网站?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
XML的“混合内容”是什么 怎么用DTD或XSD定义
广州营销型建站服务商推荐:技术优势与SEO优化解析
建站之星导航菜单设置与功能模块配置全攻略
建站主机SSH密钥生成步骤及常见问题解答?
如何在建站之星网店版论坛获取技术支持?
*请认真填写需求信息,我们会在24小时内与您取得联系。