RatingBar 的使用 以及自定义的RatingBar

关于 RatingBar

1. RatingBar (星级评分条)和SeekBar 是十分相似的,他们有相同的父类 AbsSeekBar.他们允许用户通过拖动来改变进度.而 RatingBar 的最大的区别就是通过星星来表示进度.


2.下图是 RatingBar的一些常见的XML属性:

具体参照:  http://wear.techbrood.com/reference/android/widget/RatingBar.html

3. 实例代码:

定义一个RatingBar

<RatingBar
    android:id="@+id/rb"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />


对应的java 代码:

public class StarActivity extends BaseActivity {

    private RatingBar bar;
    ImageView image;
    SeekBar seek;

    @Override
    protected void initContentView(Bundle savedInstanceState) {
        setContentView(R.layout.activity_star_layout);
    }

    @Override
    protected void initView() {
        bar = findview(R.id.ratBar);
        image = findview(R.id.image);
    }

    @Override
    protected void initData() {
        bar.setOnRatingBarChangeListener(new RatingBarChangeListenerImpl());
        bar.setNumStars(5); // 设置 星星的总个数
        bar.setRating(2);  // 设置星级评分条的默认星级
        bar.setStepSize(0.5f); // 设置每次需要改变的星级
    }

    private class RatingBarChangeListenerImpl implements OnRatingBarChangeListener {
        @Override
        public void onRatingChanged(RatingBar ratingBar, float v, boolean b) {
            Toast.makeText(StarActivity.this, "点击星星===", Toast.LENGTH_LONG).show();
            Log.i("SUO", "现在的等级:" + v + ",:用户是否触发 点击: " + b);
        }

    }
}
最后在星星上进行拖动可以看到星级的变化.

通过 OnRatingBarChangeListener 来设置监听器,监听星级的改变.
参照下图:

4. 自定义星星的图案

① 在drawable 文件加下创建文件 dr_myratingbar.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@android:id/background"
        android:drawable="@drawable/b2" />
    <item
        android:id="@android:id/progress"
        android:drawable="@drawable/b1" />
</layer-list>
② styles.xml下添加一个标签
<style name="MyRatingBar" parent="@android:style/Widget.RatingBar">
    <item name="android:progressDrawable">@drawable/dr_myratingbar</item>
    <item name="android:minHeight">45dip</item>
    <item name="android:maxHeight">45dip</item>
</style>

③ 在布局中引入即可:
<RatingBar
    android:id="@+id/ratBar"
    style="@style/MyRatingBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:isIndicator="false" />

最后是图片:



项目中可能会用到,所以提前先看一下......


自定义rating的实现 参考链接:
http://blog.csdn.net/linglongxin24/article/details/52918701


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值