基本界面控件-5进度条

本文深入探讨了Android开发中常用的三种进度条控件:ProgressBar、SeekBar和RatingBar,详细介绍了它们的展示方式、常用属性设置及使用方法,并提供了实例代码。

五、基本界面控件-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方式时,进度条次进度当前值。

Xml代码 收藏代码
  1. <ProgressBarandroid:layout_width="wrap_content"
  2. android:layout_height="wrap_content"
  3. style="?android:attr/progressBarStyleLarge"/>
  4. <ProgressBarandroid:layout_width="wrap_content"
  5. android:layout_height="wrap_content"
  6. style="?android:attr/progressBarStyle"/>
  7. <ProgressBarandroid:layout_width="wrap_content"
  8. android:layout_height="wrap_content"
  9. style="?android:attr/progressBarStyleSmall"/>
  10. <ProgressBarandroid:id="@+id/myProgressBar"
  11. android:layout_width="fill_parent"
  12. android:layout_height="wrap_content"
  13. style="?android:attr/progressBarStyleHorizontal"
  14. android:max="100"
  15. android:progress="50"
  16. android:secondaryProgress="75"/>

progressBarStyleHorizontal方式时,就需要指定进度条最大值,当前值,次要的当前值。还可以在代码中手动设置。

通过按钮改变progress和secondaryProgress的代码:

Java代码 收藏代码
  1. if(v.equals(this.buttonSubBar)){
  2. this.myProgressBar.setProgress(this.myProgressBar.getProgress()-10);
  3. }elseif(v.equals(this.buttonAddBar)){
  4. this.myProgressBar.setProgress(this.myProgressBar.getProgress()+10);
  5. }elseif(v.equals(this.buttonSubSecondaryBar)){
  6. this.myProgressBar.setSecondaryProgress(this.myProgressBar.getSecondaryProgress()-5);
  7. }elseif(v.equals(this.buttonAddSecondaryBar)){
  8. this.myProgressBar.setSecondaryProgress(this.myProgressBar.getSecondaryProgress()+5);
  9. }

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) 可进行监听,开始拖拽,停止拖拽,以及拖拽中进度条的值是否是用户改变等参数。

Xml代码 收藏代码
  1. <SeekBarandroid:id="@+id/mySeekBar"
  2. android:layout_width="fill_parent"
  3. android:layout_height="wrap_content"
  4. android:thumb="@drawable/thumb"
  5. android:thumbOffset="10px"
  6. android:max="100"
  7. android:progress="20"/>

Java代码 收藏代码
  1. this.mySeekBar=(SeekBar)super.findViewById(R.id.mySeekBar);
  2. this.mySeekBar.setOnSeekBarChangeListener(onSeekBarChangeListener);
  3. *
  4. *
  5. /**
  6. *seekBar监听器
  7. */
  8. privateSeekBar.OnSeekBarChangeListeneronSeekBarChangeListener=newSeekBar.OnSeekBarChangeListener(){
  9. @Override
  10. publicvoidonProgressChanged(SeekBarseekBar,intprogress,booleanfromUser){
  11. myTextSeekBar.setText(progress+"");
  12. Log.v(CommonConfig.LOG_TAG,"SeekBaronProgressChanged,progress:"+progress+",fromUser:"+fromUser);
  13. }
  14. @Override
  15. publicvoidonStartTrackingTouch(SeekBarseekBar){
  16. Log.v(CommonConfig.LOG_TAG,"SeekBaronStartTrackingTouch");
  17. }
  18. @Override
  19. publicvoidonStopTrackingTouch(SeekBarseekBar){
  20. Log.v(CommonConfig.LOG_TAG,"SeekBaronStopTrackingTouch");
  21. }
  22. };

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),添加一个监听器,可以监听每次改变。


Xml代码 收藏代码
  1. <RatingBarandroid:id="@+id/myRatingBar"
  2. android:layout_width="wrap_content"
  3. android:layout_height="wrap_content"
  4. android:isIndicator="false"
  5. android:numStars="5"
  6. android:rating="1.5"
  7. android:stepSize="0.5"/>

Java代码 收藏代码
  1. this.myRatingBar=(RatingBar)super.findViewById(R.id.myRatingBar);
  2. this.myRatingBar.setOnRatingBarChangeListener(onRatingBarChangeListener);
  3. *
  4. *
  5. /**
  6. *ratingBar监听器
  7. */
  8. privateRatingBar.OnRatingBarChangeListeneronRatingBarChangeListener=newRatingBar.OnRatingBarChangeListener(){
  9. @Override
  10. publicvoidonRatingChanged(RatingBarratingBar,floatrating,booleanfromUser){
  11. myTextRatingBar.setText(rating+"/"+ratingBar.getNumStars());
  12. Log.v(CommonConfig.LOG_TAG,"RatingBaronRatingChanged,rating:"+rating+",fromUser:"+fromUser);
  13. }
  14. };

  • 大小: 10.7 KB
  • 大小: 8.3 KB
  • 大小: 11.4 KB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值