前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >亲,麻烦给个五星好评!—RatingBar(星级评分条)

亲,麻烦给个五星好评!—RatingBar(星级评分条)

作者头像
下码看花
发布2019-09-02 16:20:57
2.7K1
发布2019-09-02 16:20:57
举报
文章被收录于专栏:AndroidStudio初识AndroidStudio初识

引言

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

简介

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

代码语言:javascript
复制
public class RatingBar extends AbsSeekBar 

java.lang.Object
   ↳ android.view.View
     ↳ android.widget.ProgressBar
       ↳ android.widget.AbsSeekBar
         ↳ android.widget.RatingBar

由上面的继承结构可以看出, RatingBar是基于 SeekBarProgressBar的扩展。

基本使用

代码语言:javascript
复制
<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,看下运行效果:

可以看出,系统给我们提供了一套默认的样式与代码逻辑,如果想实现我们自己的样式逻辑,可在此基础上进行修改。

XML常用属性

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

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

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

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

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

使用示例:

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

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

代码语言:javascript
复制
<?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样式。

代码语言:javascript
复制
<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布局里进行使用。

代码语言:javascript
复制
<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" />

监听处理

很多时候,我们还需要对星星的选择事件进行监听,获取用户选择的星星数量,这就需要我们在代码中进行监听操作。

代码语言:javascript
复制
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();
    }
});

结语

以上就是 RatingBar的使用介绍,是不是so easy,赶快在项目中使用吧!也麻烦各位小伙伴们以后看完我们的文章顺手点个赞吧~ 如果小伙伴想学习更多知识或者快速学习进阶,可以加入我们的微信群一起探讨~ 在公众号中回复微信群,就可以加入其中,也可以在公众号中回复视频,里面有一些初学者视频哦~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 下码看花 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 基本使用
  • XML常用属性
  • 监听处理
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档