基本界面控件-5进度条

来源:互联网 发布:大华监控域名 编辑:程序博客网 时间:2024/05/02 10:31

五、基本界面控件-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. <ProgressBar android:layout_width="wrap_content"  
  2.              android:layout_height="wrap_content"  
  3.              style="?android:attr/progressBarStyleLarge" />  
  4.                
  5. <ProgressBar android:layout_width="wrap_content"  
  6.              android:layout_height="wrap_content"  
  7.              style="?android:attr/progressBarStyle"/>      
  8.                   
  9. <ProgressBar android:layout_width="wrap_content"  
  10.              android:layout_height="wrap_content"  
  11.              style="?android:attr/progressBarStyleSmall" />    
  12.   
  13. <ProgressBar android:id="@+id/myProgressBar"  
  14.              android:layout_width="fill_parent"  
  15.              android:layout_height="wrap_content"  
  16.              style="?android:attr/progressBarStyleHorizontal"  
  17.              android:max="100"  
  18.              android:progress="50"  
  19.              android:secondaryProgress="75"/>  
 

 

 

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

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

 

Java代码  收藏代码
  1. if (v.equals(this.buttonSubBar)) {  
  2.     this.myProgressBar.setProgress(this.myProgressBar.getProgress() - 10);  
  3. } else if (v.equals(this.buttonAddBar)) {  
  4.     this.myProgressBar.setProgress(this.myProgressBar.getProgress() + 10);  
  5. } else if (v.equals(this.buttonSubSecondaryBar)) {  
  6.     this.myProgressBar.setSecondaryProgress(this.myProgressBar.getSecondaryProgress() - 5);  
  7. } else if (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. <SeekBar android: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.   
  3. this.mySeekBar.setOnSeekBarChangeListener(onSeekBarChangeListener);  
  4.   
  5. *  
  6. *  
  7. /** 
  8.  * seekBar 监听器 
  9.  */  
  10. private SeekBar.OnSeekBarChangeListener onSeekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {  
  11.   
  12.     @Override  
  13.     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {  
  14.         myTextSeekBar.setText(progress + "");  
  15.         Log.v(CommonConfig.LOG_TAG, "SeekBar onProgressChanged, progress: " + progress + ", fromUser: " + fromUser);  
  16.     }  
  17.   
  18.     @Override  
  19.     public void onStartTrackingTouch(SeekBar seekBar) {  
  20.         Log.v(CommonConfig.LOG_TAG, "SeekBar onStartTrackingTouch");  
  21.     }  
  22.   
  23.     @Override  
  24.     public void onStopTrackingTouch(SeekBar seekBar) {  
  25.         Log.v(CommonConfig.LOG_TAG, "SeekBar onStopTrackingTouch");  
  26.     }  
  27. };  
 

 

 

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. <RatingBar android: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.   
  3. this.myRatingBar.setOnRatingBarChangeListener(onRatingBarChangeListener);  
  4.   
  5. *  
  6. *  
  7.   
  8. /** 
  9.  * ratingBar 监听器 
  10.  */  
  11. private RatingBar.OnRatingBarChangeListener onRatingBarChangeListener = new RatingBar.OnRatingBarChangeListener() {  
  12.   
  13.     @Override  
  14.     public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {  
  15.         myTextRatingBar.setText(rating + " / " + ratingBar.getNumStars());  
  16.         Log.v(CommonConfig.LOG_TAG, "RatingBar onRatingChanged, rating: " + rating + ", fromUser: " + fromUser);  
  17.     }  
  18.   
  19. };  
 

 

  • 大小: 10.7 KB
  • 大小: 8.3 KB
  • 大小: 11.4 KB
原创粉丝点击