八、Android拖动条SeekBar星级评分条RatingBar和

1、简介
SeekBar和RatingBar都和进度条十分相似,只是进度条用颜色(或着其他用户定义的drawable资源)来表明完成的进度,而拖动条则通过滑块的位置来标志数值,并且允许用户拖动来改变值,因此拖动条常常用于对系统某种数值的设置,比如音量等;星级评分条则不是用滑块,而是改用星星来表示进度。

2、SeekBar允许用户改变滑块的外观,使用如下属性来指定:
thumb:指定一个drawable对象作为滑块
为了让程序能够相应拖动滑块位置的改变,程序可以为它绑定一个onSeekBarChangeListener监听器。
绑定监听器代码如下:

SeekBar seekBar = (SeekBar) findViewById(R.id.seekbar);
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
{
    // 当拖动条的滑块位置发生改变时触发该方法
    @Override
    public void onProgressChanged(SeekBar arg0, int progress,
                                  boolean fromUser)
    {
        // 在这里直接使用参数progress,即当前滑块代表的进度值
    }
    @Override
    public void onStartTrackingTouch(SeekBar bar)
    {
    }
    @Override
    public void onStopTrackingTouch(SeekBar bar)
    {
    }
});

在xml布局文件中,SeekBar的thumb属性设置为软件的图标,效果如下图8-2-1所示:

《八、Android拖动条SeekBar星级评分条RatingBar和》 图 8-2-1

3、RatingBar支持如下属性:
isIndicator:该星级评分条是否允许用户改变(true为不允许修改)
numStars:一共有多少个星级
rating:默认星级
stepSize:每次改变多少个星级
为星级评分条绑定监听器代码如下:

RatingBar ratingBar = (RatingBar) findViewById(R.id.rating);
ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener()
{
    // 当星级评分条的评分发生改变时触发该方法
    @Override
    public void onRatingChanged(RatingBar arg0, float rating,
                                boolean fromUser)
    {
        // 这里使用参数rating代表当前的进度
    }
});

效果如下图8-3-1所示:

《八、Android拖动条SeekBar星级评分条RatingBar和》 图 8-3-1

由于布局文件比较简单,这里没有给出

    原文作者:zzjieee
    原文地址: https://www.jianshu.com/p/4fe98f606665
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞