进度条seekbar

一、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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

generallizhong

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值