Android RaingBar评分条的使用

概述

RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定。使用RatingBar的默认大小时,用户可以触摸/拖动或使用键来设置评分,它有两种样式(小风格用ratingBarStyleSmall,大风格用ratingBarStyleIndicator),其中大的只适合指示,不适合于用户交互。

当使用可以支持用户交互的RatingBar时,无论将控件(widgets)放在它的左边还是右边都是不合适的。

只有当布局的宽被设置为wrap content时,设置的星星数量(通过函数setNumStars(int)或者在XML的布局文件中定义)将显示出来(如果设置为另一种布局宽的话,后果无法预知)。

次级进度一般不应该被修改,因为他仅仅是被当作星型部分内部的填充背景。

XML属性

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

xml代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.zjs.ratingbar.MainActivity">

    <RatingBar

        android:id="@+id/ratingbar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:isIndicator="false"
        android:maxHeight="75dp"
        android:minHeight="75dp"
        android:numStars="5"
        android:progressTint="@android:color/holo_green_light"
        android:rating="1"
        android:stepSize="0.5"/>
</LinearLayout>

Activity代码

package com.zjs.ratingbar;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

private RatingBar mRatingBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
    initlistener();
}

private void initView() {
    mRatingBar = (RatingBar) findViewById(R.id.ratingbar);
}

private void initlistener() {
    mRatingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
        @Override
        public void onRatingChanged(RatingBar ratingBar, float rating, boolean formUser) {
            float rating1 = mRatingBar.getRating();
            int numStars = mRatingBar.getNumStars();
            float stepSize = mRatingBar.getStepSize();
            Toast.makeText(MainActivity.this, rating1 + "  " + numStars + "  " + stepSize + " ", Toast.LENGTH_SHORT).show();
        }
    });
}

}

简易效果图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值