Android开发学习教程(10)- Android ProgressBar用法和属性

0 830

—— 如果你有个梦想,就必须捍卫它。 ——当幸福来敲门

上一篇我们讲了图片控件ImageView的基本用法,这里来学习进度条控件ProgressBar的基本用法。

ProgreeBar是什么

ProgressBar进度条控件,如数据加载中、下载进度显示、视频播放进度显示等等。ProgressBar有两种形态,一种是圆形的,常用来显示如数据加载中等待状态,另一种是水平线性的,常用来表示为如下载进度、视频播放进度等。

ProgreeBar有什么用

用来显示数据加载中、下载进度、视频播放进度等。

ProgreeBar怎么用

继续基于上一篇的项目,我们增加几个进度条Progressbar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".TestActivity">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toTopOf="parent">
            
            <ProgressBar
                android:id="@+id/progress_circular"
                style="@style/Widget.AppCompat.ProgressBar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_constraintStart_toStartOf="@+id/tv9"
                app:layout_constraintTop_toBottomOf="@+id/tv9" />
            <ProgressBar
                android:id="@+id/progress_horizontal"
                style="@style/Widget.AppCompat.ProgressBar.Horizontal"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:progress="20"
                app:layout_constraintStart_toStartOf="@+id/progress_circular"
                app:layout_constraintTop_toBottomOf="@+id/progress_circular" />
            <ProgressBar
                android:id="@+id/progress_horizontal2"
                style="@style/Widget.AppCompat.ProgressBar.Horizontal"
                android:layout_width="match_parent"
                android:layout_height="4dp"
                android:max="100"
                android:progress="40"
                android:progressDrawable="@drawable/layer_list_progressbar"
                app:layout_constraintStart_toStartOf="@+id/progress_horizontal"
                app:layout_constraintTop_toBottomOf="@+id/progress_horizontal" />
            <ProgressBar
                android:id="@+id/progress_horizontal3"
                style="@style/Widget.AppCompat.ProgressBar.Horizontal"
                android:layout_width="match_parent"
                android:layout_height="4dp"
                android:layout_marginTop="6dp"
                android:progress="40"
                android:secondaryProgress="45"
                android:progressDrawable="@drawable/layer_list_progressbar"
                app:layout_constraintStart_toStartOf="@+id/progress_horizontal2"
                app:layout_constraintTop_toBottomOf="@+id/progress_horizontal2" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

可以看到图中最下面的进度条有四种状态,从上到下四种进度条分别为:

第一种圆形进度条:

1
2
3
4
5
6
7
<ProgressBar
    android:id="@+id/progress_circular"
    style="@style/Widget.AppCompat.ProgressBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constraintStart_toStartOf="@+id/tv9"
    app:layout_constraintTop_toBottomOf="@+id/tv9" />

style="@style/Widget.AppCompat.ProgressBar":表示进度条的风格采用系统默认圆形进度条样式,实际的效果是,圆形进度条会自动转圈圈的,类似加载中的效果。

第二种默认样式水平进度条:

1
2
3
4
5
6
7
8
<ProgressBar
    android:id="@+id/progress_horizontal"
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:progress="20"
    app:layout_constraintStart_toStartOf="@+id/progress_circular"
    app:layout_constraintTop_toBottomOf="@+id/progress_circular" />
1
2
style="@style/Widget.AppCompat.ProgressBar.Horizontal":表示进度条的风格采用系统默认水平进度条样式。
android:progress="20":表示进度条的进度显示到20%,进度条默认最大值100。

第三种自定义进度条颜色:

1
2
3
4
5
6
7
8
9
10
<ProgressBar
    android:id="@+id/progress_horizontal2"
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:layout_width="match_parent"
    android:layout_height="4dp"
    android:max="100"
    android:progress="40"
    android:progressDrawable="@drawable/layer_list_progressbar"
    app:layout_constraintStart_toStartOf="@+id/progress_horizontal"
    app:layout_constraintTop_toBottomOf="@+id/progress_horizontal" />

android:progressDrawable="@drawable/layer_list_progressbar":表示使用shape xml的方式设置进度条的颜色,xml文件如下(里面具体的配置暂时不详细说明,到后续篇章会详细讲到):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <solid android:color="#ffffff" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="@color/teal_700" />
            </shape>
        </clip>
    </item>
</layer-list>

第四种带第二进度的进度:

第二进度的效果就是在线看电影时进度条除了显示当前观看的进度,还会显示一个已缓冲的进度,这个就是第二进度,本文中的带第二进度的进度条:

1
2
3
4
5
6
7
8
9
10
11
<ProgressBar
    android:id="@+id/progress_horizontal3"
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:layout_width="match_parent"
    android:layout_height="4dp"
    android:layout_marginTop="6dp"
    android:progress="40"
    android:secondaryProgress="45"
    android:progressDrawable="@drawable/layer_list_progressbar"
    app:layout_constraintStart_toStartOf="@+id/progress_horizontal2"
    app:layout_constraintTop_toBottomOf="@+id/progress_horizontal2" />

android:secondaryProgress="45":表示第二进度的进度值。

android:progressDrawable="@drawable/layer_list_progressbar":同样表示使用shape xml的方式设置第一和第二进度条的颜色,xml文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <solid android:color="#ffffff" />
        </shape>
    </item>
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <solid android:color="#01AF9F" />
            </shape>
        </clip>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="@color/teal_700" />
            </shape>
        </clip>
    </item>
</layer-list>
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章资源,如无特殊说明或标注,均为本站网友和创作者贡献分享。如若本站内容侵犯了原著者的合法权益,可联系网站客服QQ2743319061删除。

云炬星球 安卓教程 Android开发学习教程(10)- Android ProgressBar用法和属性 https://src.yunjunet.cn/876744.html

常见问题
  • 放心亲,我们不会为了几十块钱的东西坏了名声!
查看详情
  • 方法一:点击“立即下载.”按钮,付款后在下载弹窗的虚线框的隐藏信息里获取 方法二:在正文底部使用VIP查看隐藏的解压密码 方法三:联系【云炬网络】公众号客服获取
查看详情
  • 付款后会出现“立即下载”按钮(点击即可下载),如果下载失败也可以联系客服发订单截图补发。
查看详情
  • 登录购买会多端同步购买记录,永久可以查看反复下载;非登录购买仅将购买记录保存到本地浏览器中,浏览器cookie清除后无法再次下载。先右上角点登录,然后点击微信图标可以快速授权注册登录^_^
查看详情
  • 可以试看。点击”查看演示“或“试看预览”按钮可以试读从资料目录中节选的部分内容,也可以自己指定想试看的内容。
查看详情
  • 原因一:本站所有资源已开启有效性检测(服务器24h全自动监测),当监测到下载链接无法访问时会提示“该资源已失效,请勿购买”,遇到这种情况可以联系客服修复失效的下载链接,或直接联系客服在淘宝下单购买即可。(检测原理:购买前服务器程序会预访问下载链接,响应值为200说明资源有效允许购买,响应值为404或502等报错说明资源失效禁止购买)。原因二:上传者未启用“下载”选项。
查看详情
官方客服团队

为您解决烦忧 - 24小时在线 专业服务