五、基本界面控件-5进度条
5.5 进度条
5.5.1 ProgressBar

图5.5.1 ProgressBar
android.widget. ProgressBar,继承自android.view.View 。在android.widget包中。对应对话框ProgressDialog。
ProgressBar有两种展示方式,表盘形式(普通、小、大)和条形填充形式。在layout定义时,需要通过设施style属性类设置展示方式。
常用属性设置:
| style | 显示方式,取值: ?android:attr/progressBarStyleLarge / progressBarStyle / progressBarStyleSmall / progressBarStyleHorizontal |
| android:max | progressBarStyleHorizontal方式时,进度条满时的值。 |
| android:progress | progressBarStyleHorizontal方式时,进度条主进度当前值。 |
| android:secondaryProgress | progressBarStyleHorizontal方式时,进度条次进度当前值。 |
- <ProgressBarandroid:layout_width="wrap_content"
- android:layout_height="wrap_content"
- style="?android:attr/progressBarStyleLarge"/>
- <ProgressBarandroid:layout_width="wrap_content"
- android:layout_height="wrap_content"
- style="?android:attr/progressBarStyle"/>
- <ProgressBarandroid:layout_width="wrap_content"
- android:layout_height="wrap_content"
- style="?android:attr/progressBarStyleSmall"/>
- <ProgressBarandroid:id="@+id/myProgressBar"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- style="?android:attr/progressBarStyleHorizontal"
- android:max="100"
- android:progress="50"
- android:secondaryProgress="75"/>
progressBarStyleHorizontal方式时,就需要指定进度条最大值,当前值,次要的当前值。还可以在代码中手动设置。
通过按钮改变progress和secondaryProgress的代码:
- if(v.equals(this.buttonSubBar)){
- this.myProgressBar.setProgress(this.myProgressBar.getProgress()-10);
- }elseif(v.equals(this.buttonAddBar)){
- this.myProgressBar.setProgress(this.myProgressBar.getProgress()+10);
- }elseif(v.equals(this.buttonSubSecondaryBar)){
- this.myProgressBar.setSecondaryProgress(this.myProgressBar.getSecondaryProgress()-5);
- }elseif(v.equals(this.buttonAddSecondaryBar)){
- this.myProgressBar.setSecondaryProgress(this.myProgressBar.getSecondaryProgress()+5);
- }
5.5.2 SeekBar

图5.5.2 SeekBar
android.widget. SeekBar拖动进度条,继承自android.widget.AbsSeekBar(android.widget. ProgressBar) 。在android.widget包中。
常用属性设置:
| android:max | 进度条满时的值。 |
| android:progress | 进度条主进度当前值。 |
| android:thumb | 拇指跟随图标。 |
| android:thumbOffset | 设置允许的轨道的范围扩展到拇指的拇指偏移量。 |
方法setOnSeekBarChangeListener(SeekBar.OnSeekBarChangeListener) 可进行监听,开始拖拽,停止拖拽,以及拖拽中进度条的值是否是用户改变等参数。
- <SeekBarandroid:id="@+id/mySeekBar"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:thumb="@drawable/thumb"
- android:thumbOffset="10px"
- android:max="100"
- android:progress="20"/>
- this.mySeekBar=(SeekBar)super.findViewById(R.id.mySeekBar);
- this.mySeekBar.setOnSeekBarChangeListener(onSeekBarChangeListener);
- *
- *
- /**
- *seekBar监听器
- */
- privateSeekBar.OnSeekBarChangeListeneronSeekBarChangeListener=newSeekBar.OnSeekBarChangeListener(){
- @Override
- publicvoidonProgressChanged(SeekBarseekBar,intprogress,booleanfromUser){
- myTextSeekBar.setText(progress+"");
- Log.v(CommonConfig.LOG_TAG,"SeekBaronProgressChanged,progress:"+progress+",fromUser:"+fromUser);
- }
- @Override
- publicvoidonStartTrackingTouch(SeekBarseekBar){
- Log.v(CommonConfig.LOG_TAG,"SeekBaronStartTrackingTouch");
- }
- @Override
- publicvoidonStopTrackingTouch(SeekBarseekBar){
- Log.v(CommonConfig.LOG_TAG,"SeekBaronStopTrackingTouch");
- }
- };
5.5.3 RatingBar

图5.5.3 RatingBar
android.widget. RatingBar星式进度条,继承自android.widget.AbsSeekBar(android.widget. ProgressBar)。在android.widget包中。
常用属性设置:
| android:isIndicator | 是否是评级栏,指示器作用。True为指示器,用户不可操作。 |
| android:numStars | 总星数。 |
| android:rating | 当前星数。 |
| android:stepSize | 每次可以等加的最小单位。浮点数。 |
setOnRatingBarChangeListener(RatingBar.OnRatingBarChangeListener),添加一个监听器,可以监听每次改变。
- <RatingBarandroid:id="@+id/myRatingBar"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:isIndicator="false"
- android:numStars="5"
- android:rating="1.5"
- android:stepSize="0.5"/>
- this.myRatingBar=(RatingBar)super.findViewById(R.id.myRatingBar);
- this.myRatingBar.setOnRatingBarChangeListener(onRatingBarChangeListener);
- *
- *
- /**
- *ratingBar监听器
- */
- privateRatingBar.OnRatingBarChangeListeneronRatingBarChangeListener=newRatingBar.OnRatingBarChangeListener(){
- @Override
- publicvoidonRatingChanged(RatingBarratingBar,floatrating,booleanfromUser){
- myTextRatingBar.setText(rating+"/"+ratingBar.getNumStars());
- Log.v(CommonConfig.LOG_TAG,"RatingBaronRatingChanged,rating:"+rating+",fromUser:"+fromUser);
- }
- };
本文深入探讨了Android开发中常用的三种进度条控件:ProgressBar、SeekBar和RatingBar,详细介绍了它们的展示方式、常用属性设置及使用方法,并提供了实例代码。

698

被折叠的 条评论
为什么被折叠?



