Most visited

Recently visited

Added in API level 1

ProgressBar

public class ProgressBar
extends View

java.lang.Object
   ↳ android.view.View
     ↳ android.widget.ProgressBar
Known Direct Subclasses
Known Indirect Subclasses


某些操作的进度的可视化指标。 向用户显示表示操作进展程度的栏; 应用程序可以在前进过程中更改进度(修改小节的长度)。 在进度条上还可显示二级进度,该进度条对于显示中间进度很有用,例如流式播放进度条期间的缓冲级别。

进度条也可以不确定。 在不确定模式下,进度条会显示循环动画,而不会显示进度。 应用程序在任务长度未知时使用此模式。 不确定的进度条可以是一个旋转轮或一个水平条。

以下代码示例显示了如何从工作线程使用进度条来更新用户界面以通知用户进度:

 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();
     }
 }

要将进度条添加到布局文件,可以使用<ProgressBar>元素。 默认情况下,进度条是一个旋转轮(一个不确定的指标)。 要更改为水平进度条,请应用Widget.ProgressBar.Horizontal样式,如下所示:

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

如果您将使用进度条显示实际进度,则必须使用水平条。 然后您可以使用incrementProgressBy()setProgress()递增进度。 默认情况下,进度条在达到100时已满。如有必要,可以使用android:max属性调整最大值(完整小节的值)。 其他可用的属性列在下面。

适用于进度条的另一种常见样式是Widget.ProgressBar.Small ,它显示了较小版本的旋转轮 - 在等待内容加载时很有用。 例如,您可以将这种进度条插入到您的默认布局中,该布局将由从互联网获取的一些内容填充 - 旋转轮立即出现,当您的应用程序接收到内容时,它会用进度条替换加载的内容。 例如:

 <LinearLayout
     android:orientation="horizontal"
     ... >
     <ProgressBar
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         style="@android:style/Widget.ProgressBar.Small"
         android:layout_marginRight="5dp" />
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/loading" />
 </LinearLayout>

系统提供的其他进度栏样式包括:

“反向”样式为微调器提供了一种反色配色方案,如果您的应用使用浅色主题(白色背景),这可能是必要的。

XML属性

ProgressBar AttributesView Attributes

Summary

XML attributes

android:animationResolution Timeout between frames of animation in milliseconds

必须是整数值,例如“ 100 ”。

android:indeterminate Allows to enable the indeterminate mode. 
android:indeterminateBehavior Defines how the indeterminate mode should behave when the progress reaches max. 
android:indeterminateDrawable Drawable used for the indeterminate mode. 
android:indeterminateDuration Duration of the indeterminate animation. 
android:indeterminateOnly Restricts to ONLY indeterminate mode (state-keeping progress mode will not work). 
android:indeterminateTint Tint to apply to the indeterminate progress indicator. 
android:indeterminateTintMode Blending mode used to apply the indeterminate progress indicator tint. 
android:interpolator  
android:max Defines the maximum value the progress can take. 
android:maxHeight An optional argument to supply a maximum height for this view. 
android:maxWidth An optional argument to supply a maximum width for this view. 
android:minHeight  
android:minWidth  
android:mirrorForRtl Defines if the associated drawables need to be mirrored when in RTL mode. 
android:progress Defines the default progress value, between 0 and max. 
android:progressBackgroundTint Tint to apply to the progress indicator background. 
android:progressBackgroundTintMode Blending mode used to apply the progress indicator background tint. 
android:progressDrawable Drawable used for the progress mode. 
android:progressTint Tint to apply to the progress indicator. 
android:progressTintMode Blending mode used to apply the progress indicator tint. 
android:secondaryProgress Defines the secondary progress value, between 0 and max. 
android:secondaryProgressTint Tint to apply to the secondary progress indicator. 
android:secondaryProgressTintMode Blending mode used to apply the secondary progress indicator tint. 

Inherited XML attributes

From class android.view.View

Inherited constants

From class android.view.View

Inherited fields

From class android.view.View

Public constructors

ProgressBar(Context context)

创建一个范围为0 ... 100且初始进度为0的新进度条。

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

Public methods

void drawableHotspotChanged(float x, float y)

只要视图热点更改并需要将其传播到视图管理的可绘制视图或子视图,就会调用此函数。

CharSequence getAccessibilityClassName()

返回此对象的类名称以用于辅助功能。

Drawable getIndeterminateDrawable()

获取用于以不确定模式绘制进度条的绘图。

ColorStateList getIndeterminateTintList()
PorterDuff.Mode getIndeterminateTintMode()

如果指定,则返回用于将色调应用于不确定drawable的混合模式。

Interpolator getInterpolator()

获取不确定动画的加速度曲线类型。

int getMax()

返回此进度条范围的上限。

int getProgress()

获取进度条当前的进度。

ColorStateList getProgressBackgroundTintList()

如果指定,则返回应用于进度背景的色调。

PorterDuff.Mode getProgressBackgroundTintMode()
Drawable getProgressDrawable()

获取用于绘制进度条进度模式的绘图。

ColorStateList getProgressTintList()

如果指定,则返回应用于可绘制进度的色调。

PorterDuff.Mode getProgressTintMode()

如果指定,则返回用于将色调应用于可绘制进度的混合模式。

int getSecondaryProgress()

获取进度条当前的二级进度。

ColorStateList getSecondaryProgressTintList()

如果指定,则返回应用于辅助进度可绘制的色调。

PorterDuff.Mode getSecondaryProgressTintMode()

如果指定,则返回用于将色调应用于辅助进度可绘制的混合模式。

final void incrementProgressBy(int diff)

将进度栏的进度增加指定量。

final void incrementSecondaryProgressBy(int diff)

按指定的数量增加进度条的二次进度。

void invalidateDrawable(Drawable dr)

使指定的Drawable无效。

boolean isIndeterminate()

指示此进度栏是否处于不确定模式。

void jumpDrawablesToCurrentState()

在与此视图关联的所有可绘制对象上调用 Drawable.jumpToCurrentState()

void onRestoreInstanceState(Parcelable state)

吊钩允许视图重新应用之前由 onSaveInstanceState()生成的内部状态的表示。

Parcelable onSaveInstanceState()

钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。

void onVisibilityAggregated(boolean isVisible)

当此视图的用户可见性可能受到对此视图本身,祖先视图或此视图所附窗口的更改的影响时调用。

void postInvalidate()

导致在事件循环的后续循环中发生无效。

void setIndeterminate(boolean indeterminate)

更改此进度栏的不确定模式。

void setIndeterminateDrawable(Drawable d)

定义用于在不确定模式下绘制进度条的绘图。

void setIndeterminateDrawableTiled(Drawable d)

定义用于以不确定模式绘制进度条的可绘制drawable。

void setIndeterminateTintList(ColorStateList tint)

为不确定的drawable应用色调。

void setIndeterminateTintMode(PorterDuff.Mode tintMode)

指定用于将 setIndeterminateTintList(ColorStateList)指定的色调应用于不确定绘图的混合模式。

void setInterpolator(Interpolator interpolator)

设置不确定动画的加速度曲线。

void setInterpolator(Context context, int resID)

设置不确定动画的加速度曲线。

void setMax(int max)

将进度条的范围设置为0 ...

void setProgress(int progress)

将当前进度设置为指定值。

void setProgress(int progress, boolean animate)

将当前进度设置为指定值,可选地为当前值和目标值之间的视觉位置设置动画。

void setProgressBackgroundTintList(ColorStateList tint)

如果存在进度背景,则应用色调。

void setProgressBackgroundTintMode(PorterDuff.Mode tintMode)

指定用于将 setProgressBackgroundTintList(ColorStateList) }指定的色调应用于进度背景的混合模式。

void setProgressDrawable(Drawable d)

定义用于绘制进度条进度模式的绘图。

void setProgressDrawableTiled(Drawable d)

定义用于在进度模式中绘制进度条的可绘制drawable。

void setProgressTintList(ColorStateList tint)

对进度指示器(如果存在)应用色调,否则应用可绘制的整个进度。

void setProgressTintMode(PorterDuff.Mode tintMode)

指定用于将色调 setProgressTintList(ColorStateList) }应用于进度指示器的混合模式。

void setSecondaryProgress(int secondaryProgress)

将当前二级进度设置为指定值。

void setSecondaryProgressTintList(ColorStateList tint)

对辅助进度指示器应用色调(如果存在)。

void setSecondaryProgressTintMode(PorterDuff.Mode tintMode)

指定用于将辅助进度指示器应用 setSecondaryProgressTintList(ColorStateList) }指定的色调的混合模式。

Protected methods

void drawableStateChanged()

只要视图的状态发生变化,就会调用此函数,使得它影响所显示的可绘制状态。

void onAttachedToWindow()

这在视图附加到窗口时被调用。

void onDetachedFromWindow()

这是在视图从窗口分离时调用的。

void onDraw(Canvas canvas)

实施这个来做你的绘画。

void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。

void onSizeChanged(int w, int h, int oldw, int oldh)

当这个视图的大小发生变化时,这在布局期间被调用。

boolean verifyDrawable(Drawable who)

如果你的视图子类正在显示它自己的Drawable对象,它应该覆盖这个函数,并且对于它显示的任何Drawable返回true。

Inherited methods

From class android.view.View
From class java.lang.Object
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource

XML attributes

android:animationResolution

以毫秒为单位的动画帧之间超时

必须是整数值,例如“ 100 ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 animationResolution

android:indeterminate

允许启用不确定模式。 在这种模式下,进度条播放无限循环动画。

必须是布尔值,可以是“ true ”或“ false ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 indeterminate

android:indeterminateBehavior

定义进度达到最大值时不确定模式的行为方式。

必须是下列常数值之一。

Constant Value 描述
repeat 1 Progress starts over from 0.
cycle 2 Progress keeps the current value and goes back to 0.

这对应于全局属性资源符号 indeterminateBehavior

android:indeterminateDrawable

Drawable用于不确定模式。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

这对应于全局属性资源符号 indeterminateDrawable

android:indeterminateDuration

不确定动画的持续时间。

必须是整数值,例如“ 100 ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 indeterminateDuration

android:indeterminateOnly

仅限于不确定模式(状态保持进度模式不起作用)。

必须是布尔值,可以是“ true ”或“ false ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 indeterminateOnly

android:indeterminateTint

色彩适用于不确定进度指标。

必须是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”形式的颜色值。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 indeterminateTint

相关方法:

android:indeterminateTintMode

混合模式用于应用不确定进度指示符色调。

必须是下列常数值之一。

Constant Value 描述
src_over 3 The tint is drawn on top of the drawable. [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc]
src_in 5 The tint is masked by the alpha channel of the drawable. The drawable’s color channels are thrown out. [Sa * Da, Sc * Da]
src_atop 9 The tint is drawn above the drawable, but with the drawable’s alpha channel masking the result. [Da, Sc * Da + (1 - Sa) * Dc]
multiply 14 Multiplies the color and alpha channels of the drawable with those of the tint. [Sa * Da, Sc * Dc]
screen 15 [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc]
add 16 Combines the tint and drawable color and alpha channels, clamping the result to valid color values. Saturate(S + D)

这对应于全局属性资源符号 indeterminateTintMode

相关方法:

android:interpolator

android:max

定义进度可以达到的最大值。

必须是整数值,例如“ 100 ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 max

android:maxHeight

为此视图提供最大高度的可选参数。 有关详细信息,请参阅{请参阅android.widget.ImageView#setMaxHeight}。

必须是尺寸值,该值是附加了单位(如“ 14.5sp ”)的14.5sp 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 maxHeight

android:maxWidth

为此视图提供最大宽度的可选参数。 有关详细信息,请参阅{请参阅android.widget.ImageView#setMaxWidth}。

必须是尺寸值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 maxWidth

android:minHeight

android:minWidth

android:mirrorForRtl

定义在RTL模式下是否需要镜像关联的绘图。 默认为false

必须是布尔值,可以是“ true ”或“ false ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 mirrorForRtl

android:progress

定义0到max之间的默认进度值。

必须是整数值,例如“ 100 ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 progress

android:progressBackgroundTint

色调适用于进度指示器背景。

必须是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”形式的颜色值。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 progressBackgroundTint

相关方法:

android:progressBackgroundTintMode

混合模式用于应用进度指示器背景色调。

必须是下列常数值之一。

Constant Value 描述
src_over 3 The tint is drawn on top of the drawable. [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc]
src_in 5 The tint is masked by the alpha channel of the drawable. The drawable’s color channels are thrown out. [Sa * Da, Sc * Da]
src_atop 9 The tint is drawn above the drawable, but with the drawable’s alpha channel masking the result. [Da, Sc * Da + (1 - Sa) * Dc]
multiply 14 Multiplies the color and alpha channels of the drawable with those of the tint. [Sa * Da, Sc * Dc]
screen 15 [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc]
add 16 Combines the tint and drawable color and alpha channels, clamping the result to valid color values. Saturate(S + D)

这对应于全局属性资源符号 progressBackgroundTintMode

相关方法:

android:progressDrawable

Drawable用于进度模式。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

这对应于全局属性资源符号 progressDrawable

android:progressTint

色调适用于进度指示器。

必须是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”形式的颜色值。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 progressTint

相关方法:

android:progressTintMode

混合模式用于应用进度指示符色调。

必须是下列常数值之一。

Constant Value 描述
src_over 3 The tint is drawn on top of the drawable. [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc]
src_in 5 The tint is masked by the alpha channel of the drawable. The drawable’s color channels are thrown out. [Sa * Da, Sc * Da]
src_atop 9 The tint is drawn above the drawable, but with the drawable’s alpha channel masking the result. [Da, Sc * Da + (1 - Sa) * Dc]
multiply 14 Multiplies the color and alpha channels of the drawable with those of the tint. [Sa * Da, Sc * Dc]
screen 15 [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc]
add 16 Combines the tint and drawable color and alpha channels, clamping the result to valid color values. Saturate(S + D)

这对应于全局属性资源符号 progressTintMode

相关方法:

android:secondaryProgress

定义0到最大值之间的二次进度值。 这一进展取决于主要进展和背景。 它适用于媒体场景,例如显示缓冲进度,而默认进度显示播放进度。

必须是整数值,例如“ 100 ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 secondaryProgress

android:secondaryProgressTint

色调适用于二级进度指标。

必须是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”形式的颜色值。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 secondaryProgressTint

相关方法:

android:secondaryProgressTintMode

混合模式用于应用次要进度指示符色调。

必须是下列常数值之一。

Constant Value 描述
src_over 3 The tint is drawn on top of the drawable. [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc]
src_in 5 The tint is masked by the alpha channel of the drawable. The drawable’s color channels are thrown out. [Sa * Da, Sc * Da]
src_atop 9 The tint is drawn above the drawable, but with the drawable’s alpha channel masking the result. [Da, Sc * Da + (1 - Sa) * Dc]
multiply 14 Multiplies the color and alpha channels of the drawable with those of the tint. [Sa * Da, Sc * Dc]
screen 15 [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc]
add 16 Combines the tint and drawable color and alpha channels, clamping the result to valid color values. Saturate(S + D)

这对应于全局属性资源符号 secondaryProgressTintMode

相关方法:

Public constructors

ProgressBar

Added in API level 1
ProgressBar (Context context)

创建一个范围为0 ... 100且初始进度为0的新进度条。

Parameters
context Context: the application environment

ProgressBar

Added in API level 1
ProgressBar (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

ProgressBar

Added in API level 1
ProgressBar (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

ProgressBar

Added in API level 21
ProgressBar (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes)

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

Public methods

drawableHotspotChanged

Added in API level 21
void drawableHotspotChanged (float x, 
                float y)

只要视图热点更改并需要将其传播到视图管理的可绘制视图或子视图,就会调用此函数。

调度到子视图由 dispatchDrawableHotspotChanged(float, float)处理。

重写此功能时,一定要调用超类。

Parameters
x float: hotspot x coordinate
y float: hotspot y coordinate

getAccessibilityClassName

Added in API level 23
CharSequence getAccessibilityClassName ()

返回此对象的类名称以用于辅助功能。 如果子类正在实现的东西应该被视为一个全新的视图类,当它被可访问性使用时,子类只应该覆盖这个子类,与它所源自的类无关。 这用于填写AccessibilityNodeInfo.setClassName

Returns
CharSequence

getIndeterminateDrawable

Added in API level 1
Drawable getIndeterminateDrawable ()

获取用于以不确定模式绘制进度条的绘图。

Returns
Drawable a Drawable instance

也可以看看:

getIndeterminateTintList

Added in API level 21
ColorStateList getIndeterminateTintList ()

相关XML属性:

Returns
ColorStateList the tint applied to the indeterminate drawable

也可以看看:

getIndeterminateTintMode

Added in API level 21
PorterDuff.Mode getIndeterminateTintMode ()

如果指定,则返回用于将色调应用于不确定drawable的混合模式。

相关XML属性:

Returns
PorterDuff.Mode the blending mode used to apply the tint to the indeterminate drawable

也可以看看:

getInterpolator

Added in API level 1
Interpolator getInterpolator ()

获取不确定动画的加速度曲线类型。

Returns
Interpolator the Interpolator associated to this animation

getMax

Added in API level 1
int getMax ()

返回此进度条范围的上限。

Returns
int a positive integer

也可以看看:

getProgress

Added in API level 1
int getProgress ()

获取进度条当前的进度。 当进度条处于不确定模式时返回0。

Returns
int the current progress, between 0 and getMax()

也可以看看:

getProgressBackgroundTintList

Added in API level 21
ColorStateList getProgressBackgroundTintList ()

如果指定,则返回应用于进度背景的色调。

相关XML属性:

Returns
ColorStateList the tint applied to the progress background

也可以看看:

getProgressBackgroundTintMode

Added in API level 21
PorterDuff.Mode getProgressBackgroundTintMode ()

相关XML属性:

Returns
PorterDuff.Mode the blending mode used to apply the tint to the progress background

也可以看看:

getProgressDrawable

Added in API level 1
Drawable getProgressDrawable ()

获取用于绘制进度条进度模式的绘图。

Returns
Drawable a Drawable instance

也可以看看:

getProgressTintList

Added in API level 21
ColorStateList getProgressTintList ()

如果指定,则返回应用于可绘制进度的色调。

相关XML属性:

Returns
ColorStateList the tint applied to the progress drawable

也可以看看:

getProgressTintMode

Added in API level 21
PorterDuff.Mode getProgressTintMode ()

如果指定,则返回用于将色调应用于可绘制进度的混合模式。

相关XML属性:

Returns
PorterDuff.Mode the blending mode used to apply the tint to the progress drawable

也可以看看:

getSecondaryProgress

Added in API level 1
int getSecondaryProgress ()

获取进度条当前的二级进度。 当进度条处于不确定模式时返回0。

Returns
int the current secondary progress, between 0 and getMax()

也可以看看:

getSecondaryProgressTintList

Added in API level 21
ColorStateList getSecondaryProgressTintList ()

如果指定,则返回应用于辅助进度可绘制的色调。

相关XML属性:

Returns
ColorStateList the tint applied to the secondary progress drawable

也可以看看:

getSecondaryProgressTintMode

Added in API level 21
PorterDuff.Mode getSecondaryProgressTintMode ()

如果指定,则返回用于将色调应用于辅助进度可绘制的混合模式。

相关XML属性:

Returns
PorterDuff.Mode the blending mode used to apply the tint to the secondary progress drawable

也可以看看:

incrementProgressBy

Added in API level 1
void incrementProgressBy (int diff)

将进度栏的进度增加指定量。

Parameters
diff int: the amount by which the progress must be increased

也可以看看:

incrementSecondaryProgressBy

Added in API level 1
void incrementSecondaryProgressBy (int diff)

按指定的数量增加进度条的二次进度。

Parameters
diff int: the amount by which the secondary progress must be increased

也可以看看:

invalidateDrawable

Added in API level 1
void invalidateDrawable (Drawable dr)

使指定的Drawable无效。

Parameters
dr Drawable: the drawable to invalidate

isIndeterminate

Added in API level 1
boolean isIndeterminate ()

指示此进度栏是否处于不确定模式。

Returns
boolean true if the progress bar is in indeterminate mode

jumpDrawablesToCurrentState

Added in API level 11
void jumpDrawablesToCurrentState ()

在与此视图关联的所有可绘制对象上调用 Drawable.jumpToCurrentState()

如果有一个StateListAnimator附加到这个视图,也调用 jumpToCurrentState()

onRestoreInstanceState

Added in API level 1
void onRestoreInstanceState (Parcelable state)

吊钩允许视图重新应用之前由onSaveInstanceState()生成的内部状态的表示。 这个函数永远不会被调用为null状态。

Parameters
state Parcelable: The frozen state that had previously been returned by onSaveInstanceState().

onSaveInstanceState

Added in API level 1
Parcelable onSaveInstanceState ()

钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。 此状态应仅包含不持久或以后不能重建的信息。 例如,您永远不会将当前位置存储在屏幕上,因为当视图的新实例放置在其视图层次结构中时会再次计算该位置。

您可能在此处存储的某些示例:文本视图中的当前光标位置(但通常不是文本本身,因为它存储在内容提供程序或其他永久性存储中),即当前在列表视图中选择的项目。

Returns
Parcelable Returns a Parcelable object containing the view's current dynamic state, or null if there is nothing interesting to save. The default implementation returns null.

onVisibilityAggregated

Added in API level 24
void onVisibilityAggregated (boolean isVisible)

当此视图的用户可见性可能受到对此视图本身,祖先视图或此视图所附窗口的更改的影响时调用。

Parameters
isVisible boolean: true if this view and all of its ancestors are VISIBLE and this view's window is also visible

postInvalidate

Added in API level 1
void postInvalidate ()

导致在事件循环的后续循环中发生无效。 使用它来使非UI线程中的视图无效。

只有当此视图附加到窗口时,才可以从UI线程之外调用此方法。

setIndeterminate

Added in API level 1
void setIndeterminate (boolean indeterminate)

更改此进度栏的不确定模式。 在不确定模式下,进度将被忽略,进度条会显示无限动画。

If this progress bar's style only supports indeterminate mode (such as the circular progress bars), then this will be ignored.

Parameters
indeterminate boolean: true to enable the indeterminate mode

setIndeterminateDrawable

Added in API level 1
void setIndeterminateDrawable (Drawable d)

定义用于在不确定模式下绘制进度条的绘图。

Parameters
d Drawable: the new drawable

也可以看看:

setIndeterminateDrawableTiled

Added in API level 21
void setIndeterminateDrawableTiled (Drawable d)

定义用于以不确定模式绘制进度条的可绘制drawable。

如果drawable是一个BitmapDrawable或包含BitmapDrawables,则会生成一个平铺副本,以显示为进度条。

Parameters
d Drawable: the new drawable

也可以看看:

setIndeterminateTintList

Added in API level 21
void setIndeterminateTintList (ColorStateList tint)

为不确定的drawable应用色调。 不会修改当前着色模式,默认为SRC_IN

随后调用 setIndeterminateDrawable(Drawable)将自动 setIndeterminateDrawable(Drawable) drawable,并使用 setTintList(ColorStateList)应用指定的色调和色调模式。

相关XML属性:

Parameters
tint ColorStateList: the tint to apply, may be null to clear tint

也可以看看:

setIndeterminateTintMode

Added in API level 21
void setIndeterminateTintMode (PorterDuff.Mode tintMode)

指定用于将setIndeterminateTintList(ColorStateList)指定的色调应用于不确定绘图的混合模式。 默认模式是SRC_IN

相关XML属性:

Parameters
tintMode PorterDuff.Mode: the blending mode used to apply the tint, may be null to clear tint

也可以看看:

setInterpolator

Added in API level 1
void setInterpolator (Interpolator interpolator)

设置不确定动画的加速度曲线。 默认为线性插值。

Parameters
interpolator Interpolator: The interpolator which defines the acceleration curve

setInterpolator

Added in API level 1
void setInterpolator (Context context, 
                int resID)

设置不确定动画的加速度曲线。 插补器作为来自指定上下文的资源加载。

Parameters
context Context: The application environment
resID int: The resource identifier of the interpolator to load

setMax

Added in API level 1
void setMax (int max)

将进度条的范围设置为0 ... max

Parameters
max int: the upper range of this progress bar

也可以看看:

setProgress

Added in API level 1
void setProgress (int progress)

将当前进度设置为指定值。 如果进度栏处于不确定模式,则不执行任何操作。

该方法将立即更新进度指示器的视觉位置。 要将视觉位置设置为目标值,请使用setProgress(int, boolean) }。

Parameters
progress int: the new progress, between 0 and getMax()

也可以看看:

setProgress

Added in API level 24
void setProgress (int progress, 
                boolean animate)

将当前进度设置为指定值,可选地为当前值和目标值之间的视觉位置设置动画。

动画不会影响 getProgress()的结果,该结果将在调用此方法后立即返回目标值。

Parameters
progress int: the new progress value, between 0 and getMax()
animate boolean: true to animate between the current and target values or false to not animate

setProgressBackgroundTintList

Added in API level 21
void setProgressBackgroundTintList (ColorStateList tint)

如果存在进度背景,则应用色调。 不会修改当前着色模式,默认为SRC_ATOP

必须将进度背景指定为 background中用ID background作为进度绘制的 LayerDrawable

随后调用 setProgressDrawable(Drawable) ,其中drawable包含进度背景将自动改变drawable,并使用 setTintList(ColorStateList)应用指定的着色和着色模式。

相关XML属性:

Parameters
tint ColorStateList: the tint to apply, may be null to clear tint

也可以看看:

setProgressBackgroundTintMode

Added in API level 21
void setProgressBackgroundTintMode (PorterDuff.Mode tintMode)

指定用于将setProgressBackgroundTintList(ColorStateList) }指定的色调应用于进度背景的混合模式。 默认模式是SRC_IN

相关XML属性:

Parameters
tintMode PorterDuff.Mode: the blending mode used to apply the tint, may be null to clear tint

也可以看看:

setProgressDrawable

Added in API level 1
void setProgressDrawable (Drawable d)

定义用于绘制进度条进度模式的绘图。

Parameters
d Drawable: the new drawable

也可以看看:

setProgressDrawableTiled

Added in API level 21
void setProgressDrawableTiled (Drawable d)

定义用于在进度模式中绘制进度条的可绘制drawable。

如果drawable是一个BitmapDrawable或包含BitmapDrawables,则会生成一个平铺副本,以显示为进度条。

Parameters
d Drawable: the new drawable

也可以看看:

setProgressTintList

Added in API level 21
void setProgressTintList (ColorStateList tint)

对进度指示器(如果存在)应用色调,否则应用可绘制的整个进度。 不会修改当前的色调模式,默认为SRC_IN

应该将进度指示器指定为 progress中用ID progress作为进度可绘制的 LayerDrawable

随后对 setProgressDrawable(Drawable)调用将自动 setProgressDrawable(Drawable) drawable,并使用 setTintList(ColorStateList)应用指定的色调和色调模式。

相关XML属性:

Parameters
tint ColorStateList: the tint to apply, may be null to clear tint

也可以看看:

setProgressTintMode

Added in API level 21
void setProgressTintMode (PorterDuff.Mode tintMode)

指定用于将setProgressTintList(ColorStateList) }指定的色调应用于进度指示器的混合模式。 默认模式是SRC_IN

相关XML属性:

Parameters
tintMode PorterDuff.Mode: the blending mode used to apply the tint, may be null to clear tint

也可以看看:

setSecondaryProgress

Added in API level 1
void setSecondaryProgress (int secondaryProgress)

将当前二级进度设置为指定值。 如果进度栏处于不确定模式,则不执行任何操作。

Parameters
secondaryProgress int: the new secondary progress, between 0 and getMax()

也可以看看:

setSecondaryProgressTintList

Added in API level 21
void setSecondaryProgressTintList (ColorStateList tint)

对辅助进度指示器应用色调(如果存在)。 不会修改当前着色模式,默认为SRC_ATOP

辅助进度指示器必须指定为 secondaryProgress中用ID secondaryProgress作为进度可绘制的 LayerDrawable

随后调用 setProgressDrawable(Drawable) ,其中drawable包含辅助进度指示器将自动 setTintList(ColorStateList) drawable,并使用 setTintList(ColorStateList)应用指定的着色和着色模式。

相关XML属性:

Parameters
tint ColorStateList: the tint to apply, may be null to clear tint

也可以看看:

setSecondaryProgressTintMode

Added in API level 21
void setSecondaryProgressTintMode (PorterDuff.Mode tintMode)

指定用于将辅助进度指示符应用setSecondaryProgressTintList(ColorStateList) }指定的色调的混合模式。 默认模式是SRC_ATOP

相关XML属性:

Parameters
tintMode PorterDuff.Mode: the blending mode used to apply the tint, may be null to clear tint

也可以看看:

Protected methods

drawableStateChanged

Added in API level 1
void drawableStateChanged ()

只要视图的状态发生变化,就会调用此函数,使得它影响所显示的可绘制状态。

如果View有一个StateListAnimator,它也将被调用来运行必要的状态改变动画。

重写此功能时,一定要调用超类。

onAttachedToWindow

Added in API level 1
void onAttachedToWindow ()

这在视图附加到窗口时被调用。 此时它有一个Surface并将开始绘制。 请注意,此函数保证在onDraw(android.graphics.Canvas)之前onDraw(android.graphics.Canvas) ,但可以在第一次onDraw之前的任何时候调用此函数 - 包括在onMeasure(int, int)之前或之后。

onDetachedFromWindow

Added in API level 1
void onDetachedFromWindow ()

这是在视图从窗口分离时调用的。 此时它不再有绘图表面。

onDraw

Added in API level 1
void onDraw (Canvas canvas)

实施这个来做你的绘画。

Parameters
canvas Canvas: the canvas on which the background will be drawn

onMeasure

Added in API level 1
void onMeasure (int widthMeasureSpec, 
                int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。 此方法由measure(int, int)调用,并应由子类覆盖以提供其内容的准确和有效的度量。

合同:覆盖此方法时, 必须致电setMeasuredDimension(int, int)来存储此视图的测量宽度和高度。 不这样做会触发IllegalStateException ,由measure(int, int)引发。 调用超类' onMeasure(int, int)是一种有效的用法。

Measure的基类实现默认为背景大小,除非MeasureSpec允许更大的大小。 子类应覆盖onMeasure(int, int)以提供更好的内容度量。

如果此方法被覆盖,则子类的责任是确保测量的高度和宽度至少为视图的最小高度和宽度( getSuggestedMinimumHeight()getSuggestedMinimumWidth() )。

Parameters
widthMeasureSpec int: horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.
heightMeasureSpec int: vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.

onSizeChanged

Added in API level 1
void onSizeChanged (int w, 
                int h, 
                int oldw, 
                int oldh)

当这个视图的大小发生变化时,这在布局期间被调用。 如果您刚刚添加到视图层次结构中,则会使用旧值0调用。

Parameters
w int: Current width of this view.
h int: Current height of this view.
oldw int: Old width of this view.
oldh int: Old height of this view.

verifyDrawable

Added in API level 1
boolean verifyDrawable (Drawable who)

如果你的视图子类正在显示它自己的Drawable对象,它应该覆盖这个函数,并且对于它显示的任何Drawable返回true。 这样可以安排这些可绘制的动画。

重写此功能时,一定要调用超类。

Parameters
who Drawable: The Drawable to verify. Return true if it is one you are displaying, else return the result of calling through to the super class.
Returns
boolean boolean If true than the Drawable is being displayed in the view; else false and it is not allowed to animate.

Hooray!