Android Studio中使用进度条控件

安卓系统中的进度条主要有圆形和水平两种,安卓系统默认进度条是圆形进度条,如图1所示。

 

1 圆形进度条与水平进度条

使用ProgressBar类表示进度条。

1 圆形进度条

1.1 创建圆形进度条

圆形进度条主要包括大、正常和小三种类型,可以通过style属性进行设置。

<ProgressBar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="?android:attr/progressBarStyleLarge"
    android:id="@+id/progressBarLarge"/>

以上代码的作用是定义了一个大的圆形进度条;小的圆形进度条style的值是

style="?android:attr/progressBarStyleSmall"

正如之前提到的,如果不设置style的值,则该进度条默认为圆形正常进度条。大、正常和小的圆形进度条如图1所示。

1.2 ?android:attr@android:style区别

1.1 创建圆形进度条”中提到了通过将style属性设置成“?android:attr/XXX”格式的值来设置进度条类型的方法。除了该方法之外,还可以将style的值设置为如下类型

style="@android:style/Widget.ProgressBar.Small"

style="@android:style/Widget.ProgressBar.Large"

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

以上代码分别将进度条设置为小、正常和大的圆形进度条。

以上两种方法的区别在于:使用@android:style”设置style属性时,控件的style属性不会随系统的主题(Theme)的改变而改变;而使用“?android:attr/”设置style属性时,控件的style属性会随着系统的主题(Theme)的改变而改变。图2是将小的圆形控件的style值指定为“@android:style”格式。

当前的主题(Theme)是粉色,从图2中可以看出,大和普通的圆形进度条的style使用的是“?android:attr/”格式的值,所以其颜色与当前主题颜色一致;而小的圆形进度条的style值使用的是“@android:style”格式,所以其颜色与当前主题无关。

 

2 “@android:style”格式的style

2 水平进度条

2.1 创建水平进度条

将进度条的style属性设置为以下值,即可将进度条的类型改为水平

style="?android:attr/progressBarStyleHorizontal"

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

2.2 水平进度条的基本属性

除了style属性外,水平进度条还包含以下基本属性

android:max="100"
android:progress="50"
android:secondaryProgress="80"

其中,max表示水平进度条的长度;progress表示水平进度条的当前进度;sencondaryProgress表示水平进度条的第二进度,例如,在线观看视频时,当前进度表示观看视频的进度,而第二进度则表示视频缓冲的进度。图3显示了包含当前进度和第二进度的水平进度条。

 

3 水平进度条

2.3 操作水平进度条

通过安卓API可以对进度条控件进行增加/减少当前进度、增加/减少第二进度、设置当前进度、设置第二进度、获取当前进度、获取第二进度以及设置/获取进度条长度等操作。

2.3.1 增加/减少进度

通过incrementProgressBy()incrementSecondaryProgressBy()两个方法可以实现增加/减少当前进度和第二进度。这两个方法的格式为:

public final void incrementProgressBy(int diff);

public final void incrementSecondaryProgressBy(int diff);

其中,参数diff表示进度条的增量,该增量为正数时表示增加,为负数时表示减少。

2.3.2 设置进度

通过setProgress()setSecondaryProgress()方法实现设置当前进度和第二进度。

2.3.3 获取进度

通过getProgress()getSecondaryProgress()方法获取当前进度和第二进度。

public int getProgress();

public int getSecondaryProgress();

返回值即为获取到的进度。

2.3.4 设置/获取进度条长度

通过setMax()方法和getMax()方法设置/获取进度条长度。

猜你喜欢

转载自blog.csdn.net/hou09tian/article/details/80445141
今日推荐