当前位置: 移动技术网 > IT编程>移动开发>Android > 一起学Android之ProgressBar

一起学Android之ProgressBar

2019年01月05日  | 移动技术网IT编程  | 我要评论

g28321 博客,咸阳新闻,黑水鞭尾鱼

本文简述在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效果图如下图所示:

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效果图如下图所示:

seekbar示例代码

 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效果图如下图所示:

ratingbar示例代码

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

备注

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网