SeekBar,RatingBar使用时的注意事项

 

首先说说SeekBar的使用方法

1.  和其他常用空间一样,需要我们在布局文件中首先声明一个SeekBar的控件:

<SeekBar android:id="@+id/seekbar" android:layout_width="fill_parent"

android:layout_height="wrap_content"></SeekBar>

更加细致的布局大家可以自己制定

2.  在代码中声明一个SeekBar变量并将其与布局文件中的SeekBar控件关联起来

private SeekBar  seekBar;

seekBar = (SeekBar)findViewById(R.id.seekbar);

3. 最后,我们要为代码中的SeekBar变量设置监听器,这也是SeekBar控件执行操作的关键,要实现SeekBar. OnSeekBarChangeListener()这个监听器接口,接口中有如下三个函数:

 

    public void onStopTrackingTouch(SeekBar seekBar) {

      

    }

    public void onStartTrackingTouch(SeekBar seekBar) {

      

    }

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

       

    }

 

      其中onStopTrackingTouch(SeekBar seekBar)是在拖动SeekBar游标停止的那一瞬间所触发的回调函数。通俗一点,就是当我们用手指停止拖动SeekBar上的游标时,会触发这个函数执行相应的操作,如显示最后的进度等等。seekBar参数是当前的SeekBar控件对象。

 

      接下来的onStartTrackingTouch(SeekBar seekBar)函数和上面的onStopTrackingTouch(SeekBar seekBar)函数的作用大同小异,是指在我们开始拖动SeekBar游标的瞬间所触发的回调函数。也就是当我们用手指按下游标的那一瞬间,这个函数就会被执行,一般都会在函数中安排一些用户提示信息。seekBar参数是当前的SeekBar控件对象。

 

      最后的这个函数也是SeekBar中最关键的一个函数

onProgressChanged(SeekBar seekBar, int progress, boolean fromUser),这个函数的触发条件是,只要当SeekBar控件的进度值被改变(不论是人为拖动改变,还是程序进行改变),这个函数就会被触发。比如说我们在制作MP3播放器时,需要实现一个拖动SeekBar控件以调节播放进度的功能,那么当我们用手指人为拖动SeekBar游标时,会需要有个一文本来即时的提醒用户当前MP3的时间进度,而这个函数这是就可以用来实现这一功能。其中seekBar参数是当前的SeekBar控件对象,progress是当前的进度值,fromUser用来告诉函数当前进度值的改变是否是由用户执行的。

 

提醒:在这里说个题外话,有的同学在开发Android程序时会不经意用到这样的一个方法TextView.setText(CharSequence  words),这时很多人在测试数据时会直接将如intfloat这些值直接放入以代替words参数,例如:

int progress = current.getProgress();

textView.setText(progress);

这时我们在运行程序时系统就会报出android.content.res.Resources$NotFoundException,原因就是因为我们在setText()中用了非CharSequence,而虽然我们在编程的过程中IDE不会报错,但是这样的用法是错误的,大家需要注意。

 

 

再来说说RatingBar的使用方法

1.      同样和SeekBar的使用方法类似,先要在布局文件中声明一个RatingBar控件,如:

<RatingBar android:id="@+id/ratingbar" android:layout_width="wrap_content"

       android:layout_height="wrap_content" android:numStars="6"

       android:stepSize="1.0"></RatingBar>

其中android:numStars用来设置RatingBar显示的小星星数目,一般我们设置成5个就足够了,太多了手机屏幕显示不了(要是你用的3.0开发平板电脑App就另当别论了)。而android:stepSize的作用是来指定每次前进的值,是一个精度为1float值,如果设置成0.5(你也可以设置成0.10.2…..),则每次向前会覆盖或者消去0.5个星星。其他的功能属性大家根据需要自行设定。

 

2.      接下来也是要在代码中首先声明一个RatingBar的变量并将其与布局文件中的RatingBar控件关联起来

private RatingBar ratingBar;

ratingBar = (RatingBar)findViewById(R.id.ratingbar);


3.      最后,我们要为RatingBar设置监听器以监听RatingBar的星级改变事件,这里需要实现RatingBar.OnRatingBarChangeListener()这个接口,接口中只有一个方法需要实现:

public void onRatingChanged(RatingBar currentBar, float rating, boolean fromUser)

其中currentBar是当前操作的RatingBar对象,rating就是当前的星级值,

fromUser用以判定当前的星级值改变是否当前是由用户改变的。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值