Android开发手册RatingBar星级评分控件实例

目录
  • 实践过程
    • 初识
    • 基本属性
    • 点击事件
    • 自定义样式

实践过程

初识

RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定。

通常应用场景是在用户评价那,如淘宝评价,打车订餐评价等等。

使用RatingBar的默认大小时,用户可以触摸/拖动或使用键来设置评分,它有两种样式(小风格用ratingBarStyleSmall,大风格用ratingBarStyleIndicator),其中大的只适合指示,不适合于用户交互。

基本属性

【android:isIndicatorRatingBar】是否为指示器,为true时,用户将无法交互操作,默认为false。

【android:numStars】显示的星型数量,必须是一个整形值,像“50”,虽然可以设置很大,但一般都是5-10个星星即可。

【android:rating】设置默认的评分。

【android:stepSize】评分每次增加的值。建议大于0小于等于1之间最合适。

其中内置了三个样式:

style="?attr/ratingBarStyle":默认样式

style="?android:attr/ratingBarStyleSmall":小样式

style="?android:attr/ratingBarStyleIndicator":指示器样式

但是使用起来感觉不好看,如下示例:

<RatingBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<RatingBar
    style="?android:attr/ratingBarStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:isIndicator="false"
    android:numStars="5"
    android:rating="4"
    android:stepSize="1" />
<RatingBar
    style="?android:attr/ratingBarStyleIndicator"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:isIndicator="false"
    android:numStars="5"
    android:rating="3"
    android:stepSize="1" />
<androidx.appcompat.widget.AppCompatRatingBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

点击事件

RatingBar ratingBar = findViewById(R.id.rating);
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
    @Override
    public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
        Log.e("TAG", "onRatingChanged: 当前点击的评分:" + rating);
    }
});

自定义样式

<RatingBar
    android:layout_width="wrap_content"
    android:progressDrawable="@drawable/ratingbar_bg"
    android:layout_height="wrap_content" />

ratingbar_bg.xml

如上我使用的是三个图片。

【@android:id/background】属性为默认的图,

【@android:id/progress】为选中后的图,

【@android:id/secondaryProgress】为选中了一半的图。

但这时候又出现问题了,如果只修改宽高属性【layout_width】和【layout_height】为某个固定值,你会发现评分组件效果展示又不对了,总是填充满整个大小。

宽高属性要一直是【wrap_content】

但这还没完,在不同的分辨率上可能出现高度的bug:drawable图片被垂直拉伸

所以我们按照上面再改改:

<RatingBar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/RatingBar_CustomDrawable" />
<style name="RatingBar_CustomDrawable" parent="@android:style/Widget.Holo.RatingBar.Indicator">
    <item name="android:progressDrawable">@drawable/ratingbar_bg</item>
    <item name="android:minHeight">50dp</item>
    <item name="android:maxHeight">50dp</item>
</style>

固定死高度即可。

以上就是Android开发手册RatingBar星级评分控件实例的详细内容,更多关于Android开发RatingBar评分控件的资料请关注我们其它相关文章!

(0)

相关推荐

  • Android开发之自定义星星评分控件RatingBar用法示例

    本文实例讲述了Android开发之自定义星星评分控件RatingBar用法.分享给大家供大家参考,具体如下: 星级评分条RatingBar类似于SeekBar.ProgressBar'等等都可以自定义样式 它的主要用途就比如淘宝.景点 满意度等 这里给出两种自定义效果 如图所示 第一种是通过RatingBar获得分数 第二个是通过RatingBar动态调节控件属性(透明度) 由于RatngBar使用简单 自定义样式方法和 https://www.jb51.net/article/158338.h

  • Android自定义控件RatingBar调整字体大小

    项目需要,做一个可以调整字体大小的控件,能在滑动或点击时改变选中的位置,效果图如下: 这是一个类似于RatingBar的控件,然而配置RatingBar的样式难以实现这样的效果,如选中的图案和上面的文字对齐.因此,有必要写一个自定义View来实现. 思路如下: 新建一个TextRatingBar继承View类 在onDraw()方法中绘制元素:文字.横线.短竖线和圆形标记 重写onMeasure()方法,控制整体大小和边界 在onTouchEvent()方法中处理ACTION_DOWN和ACTI

  • Android星级评分条控件RatingBar使用详解

    Android开发中,时不时的就有要实现星星的评分效果,比如某宝,某团,相信大家也都见过,当然了我们可以自己去画,也可以用美工给切的图去实现,其实在Android原生的控件中就可以来实现这样的效果,它就是RatingBar. 来,我们先看一张图(只在代码中引入了控件) 实现效果如下图: 我们先看一下它的继承关系:这玩意和SeekBar的类结构是一样的,也是ProgressBar的子类 相关属性: android:isIndicator:是否用作指示,用户无法更改,默认false android:

  • Android RatingBar星星评分控件实例代码

    效果图: 直接上代码: xml文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http:

  • Android开发手册RatingBar星级评分控件实例

    目录 实践过程 初识 基本属性 点击事件 自定义样式 实践过程 初识 RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定. 通常应用场景是在用户评价那,如淘宝评价,打车订餐评价等等. 使用RatingBar的默认大小时,用户可以触摸/拖动或使用键来设置评分,它有两种样式(小风格用ratingBarStyleSmall,大风格用ratingBarStyleIndicator),其中大的只适合指示,不适合于用户交互. 基本属性 [android:isIndic

  • Android开发手册自定义Switch开关按钮控件

    目录 自定义Switch外观 布局样式 Drawable代码 自定义Switch外观 外观定制这块属于基操了,我们利用属性 android:track 和 android:thumb 定制 Switch 的背景图片和滑块图片,UI那能直接切图肯定做起来更快,此方式实现极其简单指定图片就行,所以今天我们实操的是自定义drawable的形式. 布局样式 <Switch android:layout_width="wrap_content" android:layout_height=

  • Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码

    ProgressBar有2个子控件: SeekBar   拖动条控件 RatingBar   星级评分控件 1.拖动条控件 <SeekBar android:layout_width="300dp" android:layout_height="wrap_content" android:id="@+id/seekBar" android:min="0" android:max="100" andro

  • Android自定义星星可滑动评分控件

    本文实例为大家分享了Android自定义星星可滑动评分控件的具体方法,供大家参考,具体内容如下 此控件通过线性布局结合ImageView来实现. 具有展示分数,滑动评分功能,可设置0-10分,自行设置星星图片,是否可点击与滑动,星星间距. 效果如下: 需准备好下面三张图片 先看自定义属性: <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name

  • Android开发实现布局中为控件添加选择器的方法

    本文实例讲述了Android开发实现布局中为控件添加选择器的方法.分享给大家供大家参考,具体如下: 在开发过程中,动态交互的一些展示效果可以通过布局中添加选择器实现,这样就可减少Activity等的代码数量,MVP开发中降低耦合性,使开发人员在写代码时只需要关注逻辑处理. 比如:一个按钮,原本背景图片为红色,字体为黑色,点击时候背景图片为黄色,字体改为白色. 这类简单效果在布局时就可以实现: <Button android:id="@+id/btn_start" android:

  • Android 带清除功能的输入框控件实例详解

    Android 带清除功能的输入框控件实例详解 今天,看到一个很好的自定义输入框控件,于是记录一下. 效果很好: 一,自定义一个类,名为ClearEditText package com.example.clearedittext; import android.content.Context; import android.graphics.drawable.Drawable; import android.text.Editable; import android.text.TextWatc

  • 在Android开发中使用自定义组合控件的例子

    一.定义一个XML布局文件 setting_item_view.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height

  • Android自定义View仿大众点评星星评分控件

    本文实例为大家分享了Android仿大众点评星星评分控件的具体代码,供大家参考,具体内容如下 话不多说,直接上代码,这里采用的是自定View public class RatingBar extends View { // 正常.半个和选中的星星 private Bitmap mStarNormal, mStarHalf, mStarSelected; //星星的总数 private int mStartTotalNumber = 5; //选中的星星个数 private float mSele

随机推荐