RatingBar

简介

RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星形来显示等级评定,在使用默认RatingBar时,用户可以通过触摸/拖动/按键来设置评分, RatingBar自带有两种模式 ,一个小风格 ratingBarStyleSmall,大风格为ratingBarStyleIndicator,大的只适合做指示,不适用与用户交互

这里写图片描述

第一种风格ratingBarStyleSmall

    <RatingBar
        android:id="@+id/ratingbar1"
        style="?android:attr/ratingBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

第二种风格ratingBarStyleIndicator

<RatingBar
        android:id="@+id/ratingbar2"
        style="?android:attr/ratingBarStyleIndicator"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

属性

属性名称描述
Android:isIndicatorRatingBar是否是一个指示器(用户无法进行更改)
android:numStars显示的星型数量,必须是一个整形值,像“100”
android:rating默认的评分,必须是浮点类型,像“1.2”
android:stepSize评分的步长,必须是浮点类型,像“1.2”

方法

public int getNumStars()
返回显示星星总共的的数目

public float getRating()
获取当前等级(满星星的数目)

public float getStepSize()
得到RatingBar的步长

public boolean isIndicator()
返回这RatingBar是否只是一个指示器(只是起指示作用,用户无法进行交互)

public synchronized void setMax(int max)
设置这个进度条的范围为0……max

public void setNumStars(int numStars)
设置星星的数目

public void setRating(float rating)
设置等级(星星的填充数目)

public void setStepSize(float stepSize)
设置RatingBar的步长

自定义RatingBar

drawable文件

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 默认状态 -->
    <item
        android:id="@android:id/background"
        android:drawable="@mipmap/btn_collect_normal">

    </item>
    <!-- 没选中状态 -->
    <item
        android:id="@android:id/secondaryProgress"
        android:drawable="@mipmap/btn_collect_normal">

    </item>
    <!--选中状态-->
    <item
        android:id="@android:id/progress"
        android:drawable="@mipmap/btn_collect_selected">

    </item>
</layer-list>

使用

android:progressDrawable="@drawable/ratingbar_my_evaluation"

设置监听

ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(RatingBar ratingBar, float v, boolean b) {
                String s = "等级"+v+"星星总数"+ratingBar.getNumStars();
                Toast.makeText(MainActivity.this,s,Toast.LENGTH_SHORT).show();
            }
        });
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值