Android API 25 (Android 7.1.1)


ProgressBar

public class ProgressBar

extends View

Added in API level 1

 

java.lang.Object

   ↳android.view.View

    ↳android.widget.ProgressBar

 

已知直接子类:

AbsSeekBar

ContentLoadingProgressBar

 

【概述】

ProgressBar是界面用于与用户交互的一个组件,用来提升用户友好度,通常用于向用户展示某个耗时操作时,用于展示完成的百分比,不至于让用户觉得程序失去了响应。

 

在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度。一个进度条也可不确定其进度。在不确定模式下,进度条显示循环动画。这种模式常用于应用程序使用任务的长度是未知的。

 

以下代码示例展示了如何使用一个进度条,在一个工作线程中更新,然后把进度通知给用户:

public class MyActivity extends Activity {

     private static final int PROGRESS = 0x1;

     private ProgressBar mProgress;

     private int mProgressStatus = 0;

     private Handler mHandler = new Handler();

 

     protected void onCreate(Bundle icicle) {

         super.onCreate(icicle);

         setContentView(R.layout.progressbar_activity);

         mProgress = (ProgressBar) findViewById(R.id.progress_bar);

         // Start lengthy operation in a background thread

         new Thread(new Runnable() {

             public void run() {

                 while (mProgressStatus < 100) {

                     mProgressStatus = doWork();

                     // Update the progress bar

                     mHandler.post(new Runnable() {

                         public void run() {

                             mProgress.setProgress(mProgressStatus);

                         }

                     });

                 }

             }

         }).start();

     }

 }

 

 

添加进度条的布局文件,你可以使用元素。默认情况下,进度条是一个旋转的轮子(一个不确定的指标)。应用Widget.ProgressBar.Horizontal风格可以把进度条改成水平方向,像这样:

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

style=?android:attr/ProgressBarStyleHorizontal

如果你将使用进度条显示真正的进度,你应该使用水平进度条。然后使用incrementProgressBy()setProgress()来增加进度值。默认情况下,当进度值达到100就满了。如果有必要,你可以使用android:max来调整最大值。

另一个常用的风格是Widget.ProgressBar.Small。当等待加载内容时显示了一个小的旋转轮子。

 

系统提供的进度条风格有:

·Widget.ProgressBar.Horizontal     水平进度条

·Widget.ProgressBar.Small          小环形进度条

·Widget.ProgressBar.Large          大环形进度条

·Widget.ProgressBar.Inverse        环形逆转进度条

·Widget.ProgressBar.Small.Inverse  小环形逆转进度条

·Widget.ProgressBar.Large.Inverse  大环形逆转进度条

·Widget.ProgressBar.Small.Title   标题型小环形进度条

 

 

【XML属性】

android:  animationResolution

API 11-16

属性说明:设置进度条动画的超时时间。帧之间的动画超时时间。单位:毫秒。

必须是整型值(integer),如:100

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局资源符号是animationResolution

 

API 16被弃用。Framework不再使用。

 

android:  indeterminate

API 1

属性说明:设置是否使用不确定进度模式。在不确定进度模式下,进度条动画无限循环。(即没有确切的进度值。)

必须是布尔值(boolean),true”或“false”。

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局资源符号是indeterminate

 


android:  indeterminateBehavior

API 1

属性说明:设置当选择不确定进度时,如何描述到达最大进度值的表现。

必须是以下常量之一:

repeat 进度从0重新开始

cycle  进度保持当前值,并且回到0

对应的全局资源符号是indeterminateBehavior

 


android:  indeterminateDrawable

API 1

属性说明:设置当选择不确定进度时,所绘制的drawable

必须引用另一个资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name

对应的全局资源符号是indeterminateDrawable

 


android:  indeterminateDuration

API 1

属性说明:设置当选择不确定进度时的持续时间。

必须是整型值(integer),如:100

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局资源符号是indeterminateDuration

  


android:  indeterminateOnly

API 1

属性说明:设置是否只采用不确定进度模式(状态保持模式将不会工作)。

必须是布尔值(boolean),true”或“false”。

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局资源符号是indeterminateOnly

 


android:  indeterminateTint

API 21

关联方法:setIndeterminateTintList(ColorStateList tint)

属性说明:设置不确定进度条的色调。

必须是颜色值(color),格式#rgb”、”#argb”、”#rrggbb”、”#aarrggbb”。

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局资源符号是indeterminateTint

 


android:  indeterminateTintMode

API 21

关联方法:setIndeterminateTintMode(PorterDuff.Mode tintMode)

属性说明:设置不确定进度条色调的混合模式。

必须是以下常量之一:

src_over  src_in  src_atop  multiply  screen  add

它对应的全局资源符号是indeterminateTintMode

 


android:  interpolator

API 1

关联方法:setInterpolator(Interpolator interpolator)

属性说明:指定一个插值器。用于定义变化的速率。默认linear_interpolator

使用插值器

android:interpolator=@android:anim/accelerate_interpolator

常用插值器

accelerate_decelerate_interpolator 先加速再减速

accelerate_interpolator            加速

decelerate_interpolator            减速

linear_interpolator                匀速

cycle_interpolator                 周期运动(正弦曲线

bounce_interpolator                最后阶段弹球效果

anticipate_interpolator            先回退一小步然后加速前进

anticipate_overshoot_interpolator   在上一个基础上超过终点一小步再回到终点

overshoot_interpolator             快速到达终点并超出一小步最后回到终点

【个性化插值器】(几种常用插值器可调整的属性)

accelerate_decelerate_interpolator

accelerate_interpolator

androidfactor浮点值,加速速率,默认为1

decelerate_interpolator

androidfactor浮点值,减速速率,默认为1

linear_interpolator

cycle_interpolator

androidcycles整数值,循环次数,默认为1

bounce_interpolator

anticipate_interpolator

androidtension浮点值,起始点后退的张力,默认为2

anticipate_overshoot_interpolator

androidtension浮点值,起始点后退的张力,默认为2

androidextraTension浮点值,拉力的倍数,默认为1.52*1.5

overshoot_interpolator

androidtension浮点值,超出终点后的拉力,默认为2

【例】在/res/anim下创建此XML文件,命名my_overshoot_interpolator.xml,然后引用

<?xml version="1.0" encoding="utf-8"?>  

android:tension="7.0"/>

自定义插值器

...

 

android:  max

API 1

关联方法:setMax(int max)

属性说明:设置进度值的最大值。

必须是整型值(integer),如:100

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局属性资源符号是max

 


android:  maxHeight

API 1

属性说明:设置进度条的最大高度的可选参数。

必须是带单位的浮点型尺寸值float,如:14.5sp”。有效的单位包括:px(像素)dp(密度无关像素)sp(通常用于字体尺寸的可伸缩像素)in(英寸)mm(毫米)

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局属性资源符号是maxHeight


 

android:  maxWidth

API 1

属性说明:设置进度条的最大宽度的可选参数。

必须是带单位的浮点型尺寸值float,如:14.5sp”。有效的单位包括:px(像素)dp(密度无关像素)sp(通常用于字体尺寸的可伸缩像素)in(英寸)mm(毫米)

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局属性资源符号是maxWidth

 


android:  minHeight

API 1

属性说明:设置进度条的最小高度的可选参数。

关联方法setMinimumHeight(int minHeight)

必须是带单位的浮点型尺寸值float,如:14.5sp”。有效的单位包括:px(像素)dp(密度无关像素)sp(通常用于字体尺寸的可伸缩像素)in(英寸)mm(毫米)

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局属性资源符号是minHeight

 


android:  minWidth

API 1

属性说明:设置进度条的最小宽度的可选参数。

关联方法:setMinimumWidth(int minWidth)

必须是带单位的浮点型尺寸值float,如:14.5sp”。有效的单位包括:px(像素)dp(密度无关像素)sp(通常用于字体尺寸的可伸缩像素)in(英寸)mm(毫米)

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局属性资源符号是minWidth

 


android:  mirrorForRtl

API 18

属性说明:设置当RTL模式时,相关绘图是否需要镜像。默认为false

必须是布尔值(boolean),true”或“false”。

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局属性资源符号是mirrorForRtl

 


android:  progress

API 1

setProgress(int progress)

属性说明:设置进度值的默认值,值介于0max之间。如果进度条处于不确定模式,则不执行任何操作。

必须是整型值(integer),如:100

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局属性资源符号是progress

 


android:  progressBackgroundTint

API 21

关联方法:setProgressBackgroundTintList(ColorStateList tint)

属性说明:设置进度条背景的色调。

必须是颜色值(color),格式#rgb”、”#argb”、”#rrggbb”、”#aarrggbb”。

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局属性资源符号是progressBackgroundTint

 


android:  progressBackgroundTintMode

API 21

关联方法:setProgressBackgroundTintMode(PorterDuff.Mode)

属性说明:设置进度条背景色调的渲染模式。

必须是以下常量之一:

src_over src_in src_atop multiply screen add

对应的全局属性资源符号是progressBackgroundTintMode

 


android:  progressDrawable

API 1

关联方法:setProgressDrawable(android.graphics.drawable.Drawable)

属性说明:设置该进度条轨道对应的drawable

必须引用另一个资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name

对应的全局属性资源符号是progressDrawable

   


android:  progressTint

API 21

关联方法:setProgressTintList(ColorStateList tint)

属性说明:设置进度条的色调。

必须是颜色值(color),格式#rgb”、”#argb”、”#rrggbb”、”#aarrggbb”。

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局属性资源符号是progressTint

 


android:  progressTintMode

API 21

关联方法:setProgressTintMode(PorterDuff.Mode tintMode)

属性说明:设置进度条色调的渲染模式。

必须是以下常量之一:

src_over src_in src_atop multiply screen add

对应的全局属性资源符号是progressTintMode

 


android:  secondaryProgress

API 1

关联方法:setSecondearyProgress(int secondaryProgress)

属性说明:设置次级进度值的默认值,值介于0max之间。这种进步是在主要进展和背景之间绘制的。 它可以是媒体场景的理想选择,例如显示缓冲进度,而默认进度显示播放进度。

必须是整型值(integer),如:100

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局属性资源符号是secondaryProgress

 


android:  secondaryProgressTint

API 21

关联方法:setSecondaryProgressTintList(ColorStateList tint)

属性说明:设置二级进度条的色调。

必须是颜色值(color),格式#rgb”、”#argb”、”#rrggbb”、”#aarrggbb”。

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局属性资源符号是secondaryProgressTint

 


android:  secondaryProgressTintMode

API 21

关联方法:setSecondaryProgressTintMode(PorterDuff.Mode tintMode)

属性说明:设置二级进度条色调的渲染模式。

必须是以下常量之一:

src_over src_in src_atop multiply screen add

对应的全局属性资源符号是secondaryProgressTintMode 

 

【继承自view.View的XML属性】

跳转view.View

 

【公共构造函数】

ProgressBar(Context context) 

ProgressBar(Context context, AttributeSet attrs)

ProgressBar(Context context, AttributeSet attrs, int defStyleAttr)

ProgressBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)


 

更多相关文章

  1. android通过反射来获取系统属性SystemProperties
  2. android 学习资源收藏备份
  3. android:numeric="integer"属性
  4. Android 实现windows文件资源管理器
  5. Android ---android:autoLink属性
  6. 今天发现的一些优秀的资源网站

随机推荐

  1. mysql数据库详解(基于ubuntu 14.0.4 LTS
  2. 用shell写一个mysql数据备份脚本
  3. 分析Mysql事务和数据的一致性处理问题
  4. MySQL中slave_exec_mode参数详解
  5. MySQL的慢日志线上问题及优化方案
  6. linux系统下安装配置解压版的MySQL数据库
  7. Mysql5.6.36脚本编译安装及初始化教程
  8. 浅谈Mysql指定顺序排序查询
  9. Mysql数据库双机热备难点分析
  10. Mysql通过Adjacency List(邻接表)存储树