欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

一起学Android之ProgressBar

程序员文章站 2022-05-02 12:05:32
本文简述在Android开发中进度条(ProgressBar)的常见应用,仅供学习分享使用。 ......

本文简述在android开发中进度条(progressbar)的常见应用,仅供学习分享使用。

概述

在android开发中,进度条的使用场景有很多,如播放电影时可拖动的观看进度条,评分时使用的评分条,上传下载时的进度条,网络加载时的圆形进度条等。本文主要讲解三种进度条的常见用法:progressbar,seekbar,ratingbar。

progressbar常见用法

progressbar涉及知识点

  1. android:max 设置进度条的最大进度
  2. android:progress 设置进度条的当前进度(如播放视频的播放进度)
  3. android:secondaryprogress 设置进度条的第二进度(如播放视频时的缓冲进度)
  4. style="?android:attr/progressbarstylehorizontal" 设置进度条的样式(水平样式)
  5. style="?android:attr/progressbarstylelarge" 设置进度条的样式(垂直样式),圆形进度条
  6. isindeterminate() 判断进度条的形状,true:水平 false:圆形
  7. incrementprogressby(10) 增加当前的进度 incrementsecondaryprogressby(10) 增加当前的第二进度。

progressbar效果图如下图所示:

一起学Android之ProgressBar

progressbar示例代码:

一起学Android之ProgressBar
 1 <linearlayout
 2         android:id="@+id/ll_progress"
 3         android:layout_width="match_parent"
 4         android:layout_height="wrap_content"
 5         android:layout_below="@id/ll_seeking"
 6         android:layout_margintop="8dp"
 7         android:layout_marginright="15dp"
 8         android:orientation="horizontal">
 9     <textview
10         android:id="@+id/tv_progress"
11         android:layout_width="wrap_content"
12         android:layout_height="wrap_content"
13         android:text="@string/progress1"
14         android:textsize="20dp"/>
15     <progressbar
16         android:id="@+id/pb_01"
17         android:max="100"
18         android:progress="30"
19         android:layout_marginleft="10dp"
20         android:secondaryprogress="40"
21         style="?android:attr/progressbarstylehorizontal"
22         android:layout_weight="1"
23         android:layout_width="0dp"
24         android:layout_height="40dp"/>
25     </linearlayout>
26     <textview
27         android:id="@+id/tv_progress2"
28         android:layout_width="wrap_content"
29         android:layout_height="wrap_content"
30         android:layout_below="@id/ll_progress"
31         android:layout_margintop="8dp"
32         android:text="@string/progress2"
33         android:textsize="20dp"/>
34     <progressbar
35         android:id="@+id/pb_02"
36         android:layout_alignleft="@id/rbar"
37         android:layout_below="@id/ll_progress"
38         style="?android:attr/progressbarstylelarge"
39         android:layout_width="wrap_content"
40         android:layout_height="wrap_content"/>
view code

seekbar常见用法

seekbar涉及知识点

  1. android:max ,android:progress ,android:secondaryprogress此三个属性和progressbar相同,参考上面。
  2. setonseekbarchangelistener 用于设置seekbar的监听事件,监听用户拖动的状态。
  3. onseekbarchangelistener表示一个接口,有三个函数需要实现:
  • onprogresschanged(seekbar seekbar, int progress, boolean fromuser) //进度改变
  • onstarttrackingtouch(seekbar seekbar) //开始触摸
  • onstoptrackingtouch(seekbar seekbar) //停止触摸

seekbar效果图如下图所示:

一起学Android之ProgressBar

seekbar示例代码

一起学Android之ProgressBar
 1  //监控seekbar事件
 2         mseekbar=(seekbar)this.findviewbyid(r.id.sbar);
 3         mseekbar.setonseekbarchangelistener(new seekbar.onseekbarchangelistener() {
 4             @override
 5             public void onprogresschanged(seekbar seekbar, int progress, boolean fromuser) {
 6                 log.i("demobar", "seekbar-->setonseekbarchangelistener: "+string.valueof(progress)+"-->fromuser:"+string.valueof(fromuser));
 7                 mseektext.settext(string.valueof(progress));
 8             }
 9 
10             @override
11             public void onstarttrackingtouch(seekbar seekbar) {
12 
13             }
14 
15             @override
16             public void onstoptrackingtouch(seekbar seekbar) {
17 
18             }
19         });
view code

ratingbar常见用法

ratingbar涉及知识点

  1. android:numstars 表示星星的个数,默认为5个
  2. android:rating 表示当前的分值
  3. android:stepsize 表示步长,及前进一次多长的跨度,如,0.5表示半颗星星 1表示一颗心
  4. setonratingbarchangelistener 设置监听事件,
  5. onratingbarchangelistener 表示一个接口,只有一个函数需要实现:
    • onratingchanged(ratingbar ratingbar, float rating, boolean fromuser)

ratingbar效果图如下图所示:

一起学Android之ProgressBar

ratingbar示例代码

一起学Android之ProgressBar
1  mratingbar =(ratingbar) this.findviewbyid(r.id.rbar);
2         mratingbar.setonratingbarchangelistener(new ratingbar.onratingbarchangelistener() {
3             @override
4             public void onratingchanged(ratingbar ratingbar, float rating, boolean fromuser) {
5                 log.i("demobar", "ratingbar-->onratingchanged: "+string.valueof(rating)+"-->fromuser:"+string.valueof(fromuser));
6                 mratingtext.settext(string.valueof(rating));
7             }
8         });
view code

备注

一起学习,一起总结,一起进步。附上整体演示图片

一起学Android之ProgressBar