[原文Android学习笔记(十六)进度条]

ProgressBar

XML属性

属性名
描述
android:animationResolution
超时的动画帧之间的毫秒 ;必须是一个整数值,如“100”。
android:indeterminate
是否允许使用不确定模式,在不确定模式下,进度条动画无限循环
android:indeterminateBehavior
定义当进度达到最大时,不确定模式的表现;
该值必须为repeat或者cycle,repeat表示进度从0重新开始;cycle表示进度保持当前值,并且回到0
android:indeterminateDrawable
定义不确定模式是否可拉
android:indeterminateDuration
时间不定的动画
android:indeterminateOnly
限制为不定模式
android:interpolator
android:max
定义进度的最大值
android:maxHeight
进度Widget最大高
android:miniHeight
进度Widget最小高
android:maxWidth
进度Widget最大宽
android:minWidth
进度Widget最小宽
android:mirrorForRtl
定义了相关画板如果需要反映在RTL模式
android:progress
设置进度的默认值,值介于0到max之间
android:progressDrawable
android:secondaryProgress
定义二级进度值,值介于0到max。该进度在主进度和背景之间。比如用于网络播放视频时,二级进度用于表示缓冲进度,主进度用于表示播放进度。

进度条的样式

Widget.ProgressBar.Horizontal  长形进度

Android xml  布局:
[html] view plain copy

  1. ;
  2. private Handler mHandler = new Handler();
  3. ){
  4. mProgressStatus = doWork();
  5. mHandler.post(new Runnable(){
  6. @Override
  7. public void run() {
  8. mProgress.setProgress(mProgressStatus);
  9. }
  10. });
  11. }
  12. }
  13. }).start();
  14. }

效果图:

带第二进度的进度条

xml配置如下:
[html] view plain copy

  1. <ProgressBar
  2. android:id="@+id/progress_bar_with_second"
  3. style="@android:style/Widget.ProgressBar.Horizontal"
  4. android:layout_width="fill_parent"
  5. android:layout_height="wrap_content"
  6. android:progress="40"
  7. android:secondaryProgress="70"
  8. android:paddingTop="20dp"
  9. android:paddingBottom="20dp"/>
这里我们设置了初始的进度为40,android:progress的值在mini和max之间即mini<=progressvalue<=max
设置了第二进度条的进度值为70,该值也在mini和max之间。
效果如下:

不确定模式进度条

xml配置文件:
[html] view plain copy

  1. <ProgressBar
  2. android:id="@+id/progress_bar_indeterminate"
  3. style="@android:style/Widget.ProgressBar.Horizontal"
  4. android:layout_width="fill_parent"
  5. android:layout_height="wrap_content"
  6. android:indeterminate="true"
  7. android:indeterminateBehavior="cycle"
  8. android:paddingBottom="20dp"
  9. android:paddingTop="20dp"
  10. android:progress="40" />
这里通过android:indeterminate="true"设置了当前为无模式进度条
效果如图:

普通圆形进度:Widget.ProgressBar.Inverse

[html] view plain copy

  1. <ProgressBar
  2. android:id="@+id/progress_bar1"
  3. style="@android:style/Widget.ProgressBar.Inverse"
  4. android:layout_width="fill_parent"
  5. android:layout_height="wrap_content"
  6. android:progress="50"
  7. android:background="#ff00ff"
  8. android:paddingTop="4dp" />
通过android:backgroup设置了背景色
效果如图:

普通小圆形进度条

Widget.ProgressBar.Small   或 Widget.ProgressBar.Small.Inverse
 xml配置:
[html] view plain copy

  1. <ProgressBar
  2. android:id="@+id/progress_bar2"
  3. style="@android:style/Widget.ProgressBar.Small"
  4. android:layout_width="fill_parent"
  5. android:layout_height="wrap_content"
  6. android:background="#ff00ff"
  7. android:paddingBottom="20dp"
  8. android:paddingTop="20dp"
  9. android:progress="50" />

效果图:

大号圆形进度条

Widget.ProgressBar.Large 或 Widget.ProgressBar.Large.Inverse
XML配置:
[html] view plain copy

  1. <ProgressBar
  2. android:id="@+id/progress_bar4"
  3. style="@android:style/Widget.ProgressBar.Large"
  4. android:layout_width="fill_parent"
  5. android:layout_height="wrap_content"
  6. android:background="#ff00ff"
  7. android:paddingBottom="20dp"
  8. android:paddingTop="20dp"
  9. android:progress="50" />

效果图如下:

ProgressDialog

进度条对话框的设置

先看源码:
[java] view plain copy

  1. Button btn3 = (Button) findViewById(R.id.progress_dlg_3);
  2. btn3.setOnClickListener(new OnClickListener(){
  3. @Override
  4. public void onClick(View v) {
  5. ProgressDialog progressDlg = new ProgressDialog(
  6. ProgressDlg.this);
  7. progressDlg.setTitle("进度对话框测试");
  8. progressDlg.setMessage("测试进度");
  9. progressDlg.setIcon(R.drawable.ic_launcher);
  10. progressDlg.setProgressStyle(ProgressDialog.STYLE_SPINNER);
  11. progressDlg.setCancelable(false);
  12. progressDlg.show();
  13. }});
这里我们设置了在Button的点击事件时,弹出进度对话框progressDlg;
其中ProgressDlg.this表示当前的Activity
方法setTitle 设置当前进度对话框的标题
setMessage 设置当前进度对话框的消息
setIcon  设置进度对话框的图标
setProgressStyle设置进度条类型。包括ProgressDialog.STYLE_SPINNER(圆形 (默认))、ProgressDialog.STYLE_HORIZONTAL(长条形)
setCancelable() 表示是否可按回退键取消对话框。true表示可以通过回退键取消对话框,否则不能通过回退键取消对话框。
效果图如下:

ProgressDialog.STYLE_HORIZONTAL类型进度条效果如下:

给进度对话框添加上按钮

可以个进度对话框添加三种按钮:
DialogInterface.BUTTON_POSITIVE  确定
DialogInterface.BUTTON_NEGATIVE 取消
DialogInterface.BUTTON_NEUTRAL 普通
添加按钮的方法如下:
[java] view plain copy

  1. progressDlg.setButton(DialogInterface.BUTTON_NEUTRAL,
  2. "取消", new DialogInterface.OnClickListener() {
  3. @Override
  4. public void onClick(DialogInterface dialog,
  5. int which) {
  6. if(which == DialogInterface.BUTTON_NEGATIVE){
  7. System.out.println("Click negative");
  8. }
  9. }
  10. });
第一个参数制定按钮类型,第二个参数指定响应按钮点击事件的监听
效果如下:

Android progressbar 详解的更多相关文章

  1. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  2. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

  3. Android ActionBar详解

    Android ActionBar详解 分类: Android2014-04-30 15:23 1094人阅读 评论(0) 收藏 举报 androidActionBar   目录(?)[+]   第4 ...

  4. Android 签名详解

    Android 签名详解 AndroidOPhoneAnt设计模式Eclipse  在Android 系统中,所有安装 到 系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程 ...

  5. Android编译系统详解(一)

    ++++++++++++++++++++++++++++++++++++++++++ 本文系本站原创,欢迎转载! 转载请注明出处: http://blog.csdn.net/mr_raptor/art ...

  6. Android布局详解之一:FrameLayout

      原创文章,如有转载,请注明出处:http://blog.csdn.net/yihui823/article/details/6702273 FrameLayout是最简单的布局了.所有放在布局里的 ...

  7. 【整理修订】Android.mk详解

    Android.mk详解 1. Android.mk 的应用范围 Android.mk文件是GNU Makefile的一小部分,它用来对Android程序进行编译. 一个Android.mk文件可以编 ...

  8. Android菜单详解(四)——使用上下文菜单ContextMenu

    之前在<Android菜单详解(二)——创建并响应选项菜单>和<Android菜单详解(三)——SubMenu和IconMenu>中详细讲解了选项菜单,子菜单和图标菜单.今天接 ...

  9. Android签名详解(debug和release)

    Android签名详解(debug和release)   1. 为什么要签名 1) 发送者的身份认证 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,以此保证签名不同的包 ...

随机推荐

  1. loj 1004(dp)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25830‘ 思路:类似与数塔问题,自底向上处理,输入的时候稍微注意一 ...

  2. ViewPager左右滑动

    布局: <android.support.v4.view.ViewPager android:id="@+id/viewpager_main" android:layout_ ...

  3. SpringBoot相关

    快速构建项目 第 1 步:将这个 Spring Boot 项目的打包方式设置为 war. <packaging>war</packaging> SpringBoot 默认有内嵌 ...

  4. SU Demos-02Filtering-02Subfilt

    巴特沃斯滤波器的特点是通频带的频率响应曲线最平滑.这种滤波器最先由英国工程师斯替芬·巴特沃斯(Stephen Butterworth)在1930年发表在英国<无线电工程>期刊的一篇论文中提 ...

  5. Google地图接口API之地图事件(四)

    演示几个地图事件: 1. 点击标记缩放地图 仍然使用上一遍文章使用的英国伦敦的地图.点用户点击标记时实现缩放地图的功能(点击标记时绑定地图缩放事件). 代码如下: <html> <h ...

  6. UVa11324 The Largest Clique(强连通分量+缩点+记忆化搜索)

    题目给一张有向图G,要在其传递闭包T(G)上删除若干点,使得留下来的所有点具有单连通性,问最多能留下几个点. 其实这道题在T(G)上的连通性等同于在G上的连通性,所以考虑G就行了. 那么问题就简单了, ...

  7. Ubuntu 14.04 MySQL同步

    主服务器:192.168.2.212 从服务器:192.168.2.211   主服务器(192.168.2.212): 先到/etc/mysql/my.cnf下 将 bind-address 127 ...

  8. BZOJ3578 : GTY的人类基因组计划2

    关于如何判断一个集合是否出现过: 给每个元素随机一个hash权值,然后xor起来即可 插入删除都只需xor 线段树维护区间有效人数和,以及打标记表示这个区间的集合要全部标记为出现过,并把区间内sum值 ...

  9. BZOJ3745 : [Coci2014]Norma

    考虑枚举右端点,用线段树维护[i,nowr]的答案. 当右端点向右延伸时,需要知道它前面第一个比它大/小的数的位置,这里面的最值将发生改变,这个使用单调队列求出,然后将所有的l都加1. 注意常数优化. ...

  10. COJ990 WZJ的数据结构(负十)

    DFS序(带入栈出栈标记): 对于一个节点,我们用L[i]和R[i]表示它入栈和出栈的时间.这样[L[i],R[i]]就表示了以i为根的区间. 我们还要将入栈的符号为+,出栈的符号为-,那么令V[i] ...