亲,麻烦给个五星好评!—RatingBar

引言

上一篇的CheckBox已经让你们愈来愈接近实战演练了,本章咱们继续分享干货给你们,今天介绍一个实用的UI控件RatingBar(星级评分条),对于使用过电商APP(某东,某宝等)的小伙伴们来讲,应该不会陌生。在对商品进行评价时,常常会出现五星好评的评分样式,这个五星评分样式就是今天的主角RatingBarphp

简介

RatingBar:用于评分和展现的星级评分控件。java

public class RatingBar extends AbsSeekBar java.lang.Objectandroid.view.Viewandroid.widget.ProgressBarandroid.widget.AbsSeekBarandroid.widget.RatingBar 复制代码

由上面的继承结构能够看出,RatingBar是基于SeekBarProgressBar的扩展。android

基本使用

<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" android:orientation="vertical" tools:context=".MainActivity">

    <RatingBar android:layout_width="wrap_content" android:layout_height="wrap_content" />

</LinearLayout>
复制代码

在项目里直接放一个RatingBar,看下运行效果:ide

img

能够看出,系统给咱们提供了一套默认的样式与代码逻辑,若是想实现咱们本身的样式逻辑,可在此基础上进行修改。布局

XML经常使用属性

android:isIndicator:是否用做指示,即用户是否可点击更改,默认false(可点击)。学习

android:numStars:显示多少个星星,必须为整数。this

android:rating:默认评分值,必须为浮点数。spa

android:stepSize: 评分每次增长的值,必须为浮点数。设计

除了上面这些,系统还为咱们提供了三种样式,供咱们选择:3d

img

使用示例:

img

上面介绍系统提供的三种样式,主要是改变星星的大小,若是须要使用其余样式,还须要进行自定义,方式以下:

1.在drawable下编写一个layer-list文件ratingbar_layer

<?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/rating_off"/>
    <item android:id="@android:id/progress" android:drawable="@drawable/rating_on"/>
</layer-list>
复制代码

注意drawable中引用的图片,须要根据设计图尺寸,放在不一样屏幕密度的drawable文件夹下,用于屏幕适配。

2.在values文件夹下styles.xml文件中添加style样式。

<style name="my_ratingBar" parent="@android:style/Widget.RatingBar"> <item name="android:progressDrawable">@drawable/ratingbar_layer</item> <item name="android:minHeight">24dp</item> <item name="android:maxHeight">24dp</item> </style>
复制代码

3.在xml布局里进行使用。

<RatingBar android:id="@+id/ratingbar" style="@style/my_ratingBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="5" android:rating="3" android:stepSize="1" />
复制代码

img

监听处理

不少时候,咱们还须要对星星的选择事件进行监听,获取用户选择的星星数量,这就须要咱们在代码中进行监听操做。

RatingBar ratingBar = findViewById(R.id.ratingbar);
//星星变化监听
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
	@Override
    public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
    	Toast.makeText(MainActivity.this, "rating==" + String.valueOf(rating), 			         	Toast.LENGTH_SHORT).show();
    }
});
复制代码

img

结语

以上就是RatingBar的使用介绍,是否是so easy,赶快在项目中使用吧!也麻烦各位小伙伴们之后看完咱们的文章顺手点个赞吧~ 若是小伙伴想学习更多知识或者快速学习进阶,能够关注咱们的WXGZH:下码看花一块儿探讨~

相关文章
相关标签/搜索