Android自定义Ratingbar星星实现评分

61 篇文章 0 订阅
58 篇文章 1 订阅
由于Android自带的Ratingbar可以改变星星的颜色,但是无法设置间距,所以我们自定义了

Ratingbar

下面是自定义的使用方法:

XLHRatingBar

自定义Ratingbar,与系统提供的RatingBar相比可更方便指定每个星星的图标、大小及各个星星的间距,支持监听选中状态的变化

在xml布局文件中使用:

  <com.example.xlhratingbar_lib.XLHRatingBar
    xmlns:xlhRatingBar="http://schemas.android.com/apk/res-auto"
        android:id="@+id/ratingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        xlhRatingBar:canEdit="true"
        xlhRatingBar:differentSize="true"
        xlhRatingBar:dividerWidth="5dp"
        xlhRatingBar:countSelected="2"
        xlhRatingBar:starCount="5"
        xlhRatingBar:stateResId="@drawable/comment_ratingbar_selector"
        xlhRatingBar:widthAndHeight="50dp"
        />

其定义属性中:

  • canEdit true 可以点击选择不同的星星,默认false
  • differentSize 星星的大小可以不同(中间的最大,两端的依次变小且星星总数为奇数时才有效)
  • dividerWidth 单个星星之间的间隔
  • starCount 星星的总个数
  • widthAndHeight 星星的大小
  • countSelected 已经选择的星星的个数
  • stateResId单个星星的不同状态,在drawable下:

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:drawable="@drawable/evaluation_order_star_press" android:state_checked="true"></item>
      <item android:drawable="@drawable/evaluation_order_star" android:state_checked="false"></item>
    </selector>

    在代码中使用:

    XLHRatingBar ratingBar = (XLHRatingBar) findViewById(R.id.ratingBar);
          ratingBar.setCountNum(5);
          ratingBar.setCountSelected(1);
          ratingBar.setOnRatingChangeListener(new XLHRatingBar.OnRatingChangeListener() {
              @Override
              public void onChange(int countSelected) {
                  tvResult.setText(countSelected + "");
              }
          });


    附上效果图一张


    引用

    gradle dependency

dependencies {
     compile 'com.xingliuhua:xlhratingbar_lib:1.0.1'
}

转载地址:https://github.com/xingliuhua/XLHRatingBar

源码下载:http://download.csdn.net/detail/zhaihaohao1/9778420


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值