0
点赞
收藏
分享

微信扫一扫

进度条seekbar

小布_cvg 2022-03-30 阅读 158

一、SeekBar

SeekBar是一种特殊的进度条,其与ProgressBar的区别在于,SeekBar支持用户手动调整进度,可以实现进度条的个性化设置。SeekBar的继承关系如下:

java.lang.Object

->android.view.View

  ->android.widget.ProgressBar

   ->android.widget.AbsSeekBar

    ->android.widget.SeekBar


监控SeekBar的进度变化的实现方法如下:

seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){

@Override

public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {

  ...//fromUser参数标识变化是否来自用户

}

@Override

public void onStartTrackingTouch(SeekBar seekBar) {

  ...//开始触摸手势

}

@Override

public void onStopTrackingTouch(SeekBar seekBar) {

    ...//结束触摸手势

  }

});


在默认情况下,SeekBar的最大值为100,通过setMax()方法可以设置SeekBar的最大值。设置SeekBar的进度的方法如下:

public synchronized void setProgress(int progress)

public synchronized void setSecondaryProgress(int secondaryProgress)


虽然SeekBar的用法非常简单,但是开发者注重的通常为SeekBar的呈现是否有足够的个性。所以SeekBar提供了更换进度条和滑块的方法,可以通过配置SeekBar属性实现这些操作,方法如下:

<SeekBar

android:id="@+id/seekBar"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_vertical"

style="?android:attr/progressBarStyleHorizontal"

android:paddingRight="3dip"

android:progressDrawable="@drawable/seekbar_style"

android:thumb="@drawable/thumb"

android:max="1000"/>


个性化的进度条更多的是通过设置android:progressDrawable属性实现的

二、 RatingBar 

    一、结构

    public class RatingBar extends AbsSeekBar


    java.lang.Object

          android.view.View

                   android.widget.ProgressBar

                        android.widget.AbsSeekBar

                               android.widget.RatingBar



  二、概述


  RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定。使用RatingBar的默认大小时,用户可以触摸/拖动或使用键来设置评分,它有两种样式(小风格用ratingBarStyleSmall,大风格用ratingBarStyleIndicator),其中大的只适合指示,不适合于用户交互。

  当使用可以支持用户交互的RatingBar时,无论将控件(widgets)放在它的左边还是右边都是不合适的。

  只有当布局的宽被设置为wrap content时,设置的星星数量(通过函数setNumStars(int)或者在XML的布局文件中定义)将显示出来(如果设置为另一种布局宽的话,后果无法预知)。

  次级进度一般不应该被修改,因为他仅仅是被当作星型部分内部的填充背景。

  参见Form Stuff tutorial.


  三、嵌套类

  接口:RatingBar.OnRatingBarChangeListener

  一个回调函数,当星级进度改变时修改客户端的星级。


      四、布局文件中定义控件以及属性,这里主要需要指定的是总星星数量,和当前的值,也就是总级别跟当前级别的量。


      <RatingBar

           android:id="@+id/ratingBar"

           android:numStars="5" //总级别,总分,星星个数

           android:rating="1.5"  //当前级别,分数,星星个数

           android:layout_width="wrap_content"

           android:layout_height="wrap_content">

     </RatingBar>



举报

相关推荐

python 进度条

Android 进度条

进度条3

Android进度条

进度条效果

进度条 参考

0 条评论