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>
系统提供的其他进度栏样式包括:
Widget.ProgressBar.Horizontal
Widget.ProgressBar.Small
Widget.ProgressBar.Large
Widget.ProgressBar.Inverse
Widget.ProgressBar.Small.Inverse
Widget.ProgressBar.Large.Inverse
“反向”样式为微调器提供了一种反色配色方案,如果您的应用使用浅色主题(白色背景),这可能是必要的。
XML属性
见 ProgressBar Attributes
, View Attributes
XML attributes |
|
---|---|
android:animationResolution |
Timeout between frames of animation in milliseconds 必须是整数值,例如“ |
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() 在与此视图关联的所有可绘制对象上调用 |
void |
onRestoreInstanceState(Parcelable state) 吊钩允许视图重新应用之前由 |
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) 指定用于将 |
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) 指定用于将 |
void |
setProgressDrawable(Drawable d) 定义用于绘制进度条进度模式的绘图。 |
void |
setProgressDrawableTiled(Drawable d) 定义用于在进度模式中绘制进度条的可绘制drawable。 |
void |
setProgressTintList(ColorStateList tint) 对进度指示器(如果存在)应用色调,否则应用可绘制的整个进度。 |
void |
setProgressTintMode(PorterDuff.Mode tintMode) 指定用于将色调 |
void |
setSecondaryProgress(int secondaryProgress) 将当前二级进度设置为指定值。 |
void |
setSecondaryProgressTintList(ColorStateList tint) 对辅助进度指示器应用色调(如果存在)。 |
void |
setSecondaryProgressTintMode(PorterDuff.Mode tintMode) 指定用于将辅助进度指示器应用 |
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
|
以毫秒为单位的动画帧之间超时
必须是整数值,例如“ 100
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 animationResolution
。
允许启用不确定模式。 在这种模式下,进度条播放无限循环动画。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 indeterminate
。
定义进度达到最大值时不确定模式的行为方式。
必须是下列常数值之一。
Constant | Value | 描述 |
---|---|---|
repeat |
1 | Progress starts over from 0. |
cycle |
2 | Progress keeps the current value and goes back to 0. |
这对应于全局属性资源符号 indeterminateBehavior
。
Drawable用于不确定模式。
必须是另一个资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
这对应于全局属性资源符号 indeterminateDrawable
。
不确定动画的持续时间。
必须是整数值,例如“ 100
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 indeterminateDuration
。
仅限于不确定模式(状态保持进度模式不起作用)。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 indeterminateOnly
。
色彩适用于不确定进度指标。
必须是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 indeterminateTint
。
相关方法:
混合模式用于应用不确定进度指示符色调。
必须是下列常数值之一。
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
。
相关方法:
定义进度可以达到的最大值。
必须是整数值,例如“ 100
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 max
。
为此视图提供最大高度的可选参数。 有关详细信息,请参阅{请参阅android.widget.ImageView#setMaxHeight}。
必须是尺寸值,该值是附加了单位(如“ 14.5sp
”)的14.5sp
。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 maxHeight
。
为此视图提供最大宽度的可选参数。 有关详细信息,请参阅{请参阅android.widget.ImageView#setMaxWidth}。
必须是尺寸值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 maxWidth
。
定义在RTL模式下是否需要镜像关联的绘图。 默认为false
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 mirrorForRtl
。
定义0到max之间的默认进度值。
必须是整数值,例如“ 100
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 progress
。
色调适用于进度指示器背景。
必须是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 progressBackgroundTint
。
相关方法:
混合模式用于应用进度指示器背景色调。
必须是下列常数值之一。
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
。
相关方法:
Drawable用于进度模式。
必须是另一个资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
这对应于全局属性资源符号 progressDrawable
。
色调适用于进度指示器。
必须是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 progressTint
。
相关方法:
混合模式用于应用进度指示符色调。
必须是下列常数值之一。
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
。
相关方法:
定义0到最大值之间的二次进度值。 这一进展取决于主要进展和背景。 它适用于媒体场景,例如显示缓冲进度,而默认进度显示播放进度。
必须是整数值,例如“ 100
”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 secondaryProgress
。
色调适用于二级进度指标。
必须是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 secondaryProgressTint
。
相关方法:
混合模式用于应用次要进度指示符色调。
必须是下列常数值之一。
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
。
相关方法:
ProgressBar (Context context)
创建一个范围为0 ... 100且初始进度为0的新进度条。
Parameters | |
---|---|
context |
Context : the application environment |
ProgressBar (Context context, AttributeSet attrs)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
ProgressBar (Context context, AttributeSet attrs, int defStyleAttr)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
defStyleAttr |
int
|
ProgressBar (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
defStyleAttr |
int
|
defStyleRes |
int
|
void drawableHotspotChanged (float x, float y)
只要视图热点更改并需要将其传播到视图管理的可绘制视图或子视图,就会调用此函数。
调度到子视图由 dispatchDrawableHotspotChanged(float, float)
处理。
重写此功能时,一定要调用超类。
Parameters | |
---|---|
x |
float : hotspot x coordinate |
y |
float : hotspot y coordinate |
CharSequence getAccessibilityClassName ()
返回此对象的类名称以用于辅助功能。 如果子类正在实现的东西应该被视为一个全新的视图类,当它被可访问性使用时,子类只应该覆盖这个子类,与它所源自的类无关。 这用于填写AccessibilityNodeInfo.setClassName
。
Returns | |
---|---|
CharSequence |
Drawable getIndeterminateDrawable ()
获取用于以不确定模式绘制进度条的绘图。
Returns | |
---|---|
Drawable |
a Drawable instance |
ColorStateList getIndeterminateTintList ()
相关XML属性:
Returns | |
---|---|
ColorStateList |
the tint applied to the indeterminate drawable |
PorterDuff.Mode getIndeterminateTintMode ()
如果指定,则返回用于将色调应用于不确定drawable的混合模式。
相关XML属性:
Returns | |
---|---|
PorterDuff.Mode |
the blending mode used to apply the tint to the indeterminate drawable |
Interpolator getInterpolator ()
获取不确定动画的加速度曲线类型。
Returns | |
---|---|
Interpolator |
the Interpolator associated to this animation |
int getProgress ()
获取进度条当前的进度。 当进度条处于不确定模式时返回0。
Returns | |
---|---|
int |
the current progress, between 0 and getMax() |
ColorStateList getProgressBackgroundTintList ()
如果指定,则返回应用于进度背景的色调。
相关XML属性:
Returns | |
---|---|
ColorStateList |
the tint applied to the progress background |
PorterDuff.Mode getProgressBackgroundTintMode ()
相关XML属性:
Returns | |
---|---|
PorterDuff.Mode |
the blending mode used to apply the tint to the progress background |
Drawable getProgressDrawable ()
获取用于绘制进度条进度模式的绘图。
Returns | |
---|---|
Drawable |
a Drawable instance |
ColorStateList getProgressTintList ()
如果指定,则返回应用于可绘制进度的色调。
相关XML属性:
Returns | |
---|---|
ColorStateList |
the tint applied to the progress drawable |
PorterDuff.Mode getProgressTintMode ()
如果指定,则返回用于将色调应用于可绘制进度的混合模式。
相关XML属性:
Returns | |
---|---|
PorterDuff.Mode |
the blending mode used to apply the tint to the progress drawable |
int getSecondaryProgress ()
获取进度条当前的二级进度。 当进度条处于不确定模式时返回0。
Returns | |
---|---|
int |
the current secondary progress, between 0 and getMax() |
ColorStateList getSecondaryProgressTintList ()
如果指定,则返回应用于辅助进度可绘制的色调。
相关XML属性:
Returns | |
---|---|
ColorStateList |
the tint applied to the secondary progress drawable |
PorterDuff.Mode getSecondaryProgressTintMode ()
如果指定,则返回用于将色调应用于辅助进度可绘制的混合模式。
相关XML属性:
Returns | |
---|---|
PorterDuff.Mode |
the blending mode used to apply the tint to the secondary progress drawable |
void incrementProgressBy (int diff)
将进度栏的进度增加指定量。
Parameters | |
---|---|
diff |
int : the amount by which the progress must be increased |
也可以看看:
void incrementSecondaryProgressBy (int diff)
按指定的数量增加进度条的二次进度。
Parameters | |
---|---|
diff |
int : the amount by which the secondary progress must be increased |
也可以看看:
void invalidateDrawable (Drawable dr)
使指定的Drawable无效。
Parameters | |
---|---|
dr |
Drawable : the drawable to invalidate |
boolean isIndeterminate ()
指示此进度栏是否处于不确定模式。
Returns | |
---|---|
boolean |
true if the progress bar is in indeterminate mode |
void jumpDrawablesToCurrentState ()
在与此视图关联的所有可绘制对象上调用 Drawable.jumpToCurrentState()
。
如果有一个StateListAnimator附加到这个视图,也调用 jumpToCurrentState()
。
void onRestoreInstanceState (Parcelable state)
吊钩允许视图重新应用之前由onSaveInstanceState()
生成的内部状态的表示。 这个函数永远不会被调用为null状态。
Parameters | |
---|---|
state |
Parcelable : The frozen state that had previously been returned by onSaveInstanceState() . |
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. |
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 |
void postInvalidate ()
导致在事件循环的后续循环中发生无效。 使用它来使非UI线程中的视图无效。
只有当此视图附加到窗口时,才可以从UI线程之外调用此方法。
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 |
void setIndeterminateDrawable (Drawable d)
定义用于在不确定模式下绘制进度条的绘图。
Parameters | |
---|---|
d |
Drawable : the new drawable |
void setIndeterminateDrawableTiled (Drawable d)
定义用于以不确定模式绘制进度条的可绘制drawable。
如果drawable是一个BitmapDrawable或包含BitmapDrawables,则会生成一个平铺副本,以显示为进度条。
Parameters | |
---|---|
d |
Drawable : the new drawable |
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 |
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 |
void setInterpolator (Interpolator interpolator)
设置不确定动画的加速度曲线。 默认为线性插值。
Parameters | |
---|---|
interpolator |
Interpolator : The interpolator which defines the acceleration curve |
void setInterpolator (Context context, int resID)
设置不确定动画的加速度曲线。 插补器作为来自指定上下文的资源加载。
Parameters | |
---|---|
context |
Context : The application environment |
resID |
int : The resource identifier of the interpolator to load |
void setMax (int max)
将进度条的范围设置为0 ... max 。
Parameters | |
---|---|
max |
int : the upper range of this progress bar |
void setProgress (int progress)
将当前进度设置为指定值。 如果进度栏处于不确定模式,则不执行任何操作。
该方法将立即更新进度指示器的视觉位置。 要将视觉位置设置为目标值,请使用setProgress(int, boolean)
}。
Parameters | |
---|---|
progress |
int : the new progress, between 0 and getMax() |
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 |
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 |
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 |
void setProgressDrawable (Drawable d)
定义用于绘制进度条进度模式的绘图。
Parameters | |
---|---|
d |
Drawable : the new drawable |
void setProgressDrawableTiled (Drawable d)
定义用于在进度模式中绘制进度条的可绘制drawable。
如果drawable是一个BitmapDrawable或包含BitmapDrawables,则会生成一个平铺副本,以显示为进度条。
Parameters | |
---|---|
d |
Drawable : the new drawable |
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 |
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 |
void setSecondaryProgress (int secondaryProgress)
将当前二级进度设置为指定值。 如果进度栏处于不确定模式,则不执行任何操作。
Parameters | |
---|---|
secondaryProgress |
int : the new secondary progress, between 0 and getMax() |
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 |
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 |
void drawableStateChanged ()
只要视图的状态发生变化,就会调用此函数,使得它影响所显示的可绘制状态。
如果View有一个StateListAnimator,它也将被调用来运行必要的状态改变动画。
重写此功能时,一定要调用超类。
void onAttachedToWindow ()
这在视图附加到窗口时被调用。 此时它有一个Surface并将开始绘制。 请注意,此函数保证在onDraw(android.graphics.Canvas)
之前onDraw(android.graphics.Canvas)
,但可以在第一次onDraw之前的任何时候调用此函数 - 包括在onMeasure(int, int)
之前或之后。
void onDraw (Canvas canvas)
实施这个来做你的绘画。
Parameters | |
---|---|
canvas |
Canvas : the canvas on which the background will be drawn |
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 . |
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. |
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. |