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 布局

    <ProgressBar  

         android:id="@+id/progress_bar"  

         android:layout_width="fill_parent"

         android:layout_height="wrap_content"

         style="@android:style/Widget.ProgressBar.Horizontal "       />

源码:

[java]

private ProgressBar mProgress;private int mProgressStatus = 0;private Handler mHandler = new Handler();@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    mProgress = (ProgressBar) findViewById(R.id.progress_bar);    new Thread(new Runnable() {        @Override        public void run() {            while (mProgressStatus < 100) {                mProgressStatus = doWork();                mHandler.post(new Runnable() {                    @Override                    public void run() {                        mProgress.setProgress(mProgressStatus);                    }                });            }        }    }).start();}

效果图:

    

带第二进度的进度条

xml配置如下:

    

    android:id="@+id/progress_bar_with_second"    style="@android:style/Widget.ProgressBar.Horizontal"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:progress="40"    android:secondaryProgress="70"    android:paddingTop="20dp"    android:paddingBottom="20dp"/> 

这里我们设置了初始的进度为40,android:progress的值在mini和max之间即mini<=progressvalue<=max

设置了第二进度条的进度值为70,该值也在mini和max之间。

效果如下:

    

不确定模式进度条

xml配置文件    

    android:id="@+id/progress_bar_indeterminate"    style="@android:style/Widget.ProgressBar.Horizontal"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:indeterminate="true"    android:indeterminateBehavior="cycle"    android:paddingBottom="20dp"    android:paddingTop="20dp"    android:progress="40" /> 

这里通过android.indeterminater="true"设置了当前无模式进度条

效果图如下:

    

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

    android:id="@+id/progress_bar1"    style="@android:style/Widget.ProgressBar.Inverse"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:progress="50"    android:background="#ff00ff"    android:paddingTop="4dp" />

通过android:backgroup设置了背景色

效果如图:

    

普通小圆形进度条

    Widget.ProgressBar.Small 或 Widget.ProgressBar.Small.Inverse

    xml配置:

    

    android:id="@+id/progress_bar2"    style="@android:style/Widget.ProgressBar.Small"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:background="#ff00ff"    android:paddingBottom="20dp"    android:paddingTop="20dp"    android:progress="50" />  

效果图:

    

大号原型进度条

Widget.ProgressBar.Large 或 Widget.PrgressBar.Large.Inverse

xml配置

    

    android:id="@+id/progress_bar4"    style="@android:style/Widget.ProgressBar.Large"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:background="#ff00ff"    android:paddingBottom="20dp"    android:paddingTop="20dp"    android:progress="50" />  

效果图如下:

   

ProgressDialog

进度条对话框的设置

先看源码:

    

Button btn3 = (Button) findViewById(R.id.progress_dlg_3);btn3.setOnClickListener(new OnClickListener(){    @Override    public void onClick(View v) {        ProgressDialog progressDlg = new ProgressDialog(                ProgressDlg.this);        progressDlg.setTitle("进度对话框测试");        progressDlg.setMessage("测试进度");        progressDlg.setIcon(R.drawable.ic_launcher);        progressDlg.setProgressStyle(ProgressDialog.STYLE_SPINNER);        progressDlg.setCancelable(false);        progressDlg.show();    }});

这里我们设置了在Button的点击事件时,弹出进度对话框progressDlg;

其中ProgressDlg.this表示当前的Activity

方法setTitle设置当前进度对话框的标题

setMessage设置当前进度对话框的消息

setIcon设置进度对话框的图标

setProgressStyle设置进度条类型,包括ProgressDialog.STYLE_SPINNER(圆形(默认))

ProgressDialog.STYLE_HORIZONTAL(长条形)

setCancelable()表示是否可按回退建取消对话框。true表示可以通过回退建取消对话框,否则不能通过回退建取消对话框。

效果图如下:

Android ProgressBar详解_第1张图片

Android ProgressBar详解_第2张图片

给进度对话狂添加上按钮

可以给进度对话框添加三种按钮:

DialogInterface.BUTTON_POSITIVE 确定

DialogInterface.BUTTON_NEGATIVE 取消

DialogInterface.BUTTON_NEUTRAL 普通

添加按钮的方法如下:

    

progressDlg.setButton(DialogInterface.BUTTON_NEUTRAL,        "取消", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog,                                int which) {                if (which == DialogInterface.BUTTON_NEGATIVE) {                    System.out.println("Click negative");                }            }        });

第一个参数指定按钮类型,第二个参数指定响应按钮点击事件的监听

效果图如下:

    Android ProgressBar详解_第3张图片

更多相关文章

  1. Android实时监控项目第一篇:项目分析及AVD模拟效果图
  2. Android UI学习 - 对话框
  3. Android中创建对话框(确定取消对话框、单选对话框、多选对话框)
  4. Android自定义进度条
  5. 《Android面试宝典》学习笔记(第四章:对话框、信息提示和菜单)
  6. android 学习(2)对话框
  7. android progressbar 显示两个进度样式的解决方案
  8. 将Android Activity设置成对话框样式
  9. Android studio 进度条

随机推荐

  1. API Guides - introduction
  2. android学习指南(2)-应用程序的基本要素
  3. Android通过共享Uid实现两个应用间的数据
  4. Android(安卓)- 数据存储 -存储文件
  5. android的内存管理方式
  6. Android(安卓)消息处理机制(Looper、Handl
  7. [Java][Android][Process] 暴力的服务可
  8. Android之消息推送实现
  9. Android屏幕密度(Density)和分辨率的关系
  10. EditText横屏时,弹出软件盘时不进行全屏