android RatingBar

作者: CokeNello | 来源:发表于2016-04-20 09:21 被阅读4881次

概述

Rating,评价,用于评价的星条显示器。

1.重要属性

  • android:numStars : 星星个数
  • android:rating : 默认点亮的星星星星个数
  • android:stepSize : 步进数,1,0.5是常用值

2.监听器

ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
                Log.e("------------","当前的评价等级:"+rating);
            }
        });
2016-04-20_082407.png

3.系统样式

style="@android:style/Widget.Holo.RatingBar"

![2016-04-20_082729.png](http:https://img.haomeiwen.com/i1876233/e69fa063ea56fbe4.png?imageMogr2/auto-orient/strip%
7CimageView2/2/w/1240)

style="@android:style/Widget.RatingBar"

2016-04-20_082825.png

style="@android:style/Widget.Material.RatingBar"

2016-04-20_082946.png

style="@android:style/Widget.DeviceDefault.RatingBar"

2016-04-20_083042.png

主要是有:
Holo,默认,Material,DeviceDefault
还有一些其他的标签:

  • small 小
  • light 亮
  • Indicator 指示器,不能选择评价了。

4.自定义

系统的:

<style name="myRatingBar">
            <item name="indeterminateOnly">false</item>
            <item name="progressDrawable">@drawable/ratingbar</item>
            <item name="indeterminateDrawable">@drawable/ratingbar</item>
            <item name="minHeight">38dip</item>
            <item name="maxHeight">38dip</item>
            <item name="thumb">@null</item>
            <item name="isIndicator">true</item>
    </style>

在 src/main/values/style.xml中新建一个自定义的
这里就能设置一些属性,宽高等。

<style name="myRatingBar">
            <item name="android:progressDrawable">@drawable/hh</item>
            <item name="android:minHeight">50dip</item>
            <item name="android:maxHeight">50dip</item>
            <item name="android:thumb">@null</item>
            <item name="android:isIndicator">true</item>
    </style>

主要是hh的样式:

<?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/A">

    </item>

    <item android:id="@android:id/secondaryProgress"
        android:drawable="@drawable/B">

    </item>

    <item android:id="@android:id/progress"
        android:drawable="@drawable/C">

    </item>

</layer-list>

这里,

  • backgroud:是用来填充背景图片的,和进度条非常类似,当我们设置最高评分时(android:numStars),系统就会根据我们的设置,来画出以星星为单位的背景(假如android:numStars="5",就会画出5颗灰色的星星)
  • progress:是用来在背景图片基础上进行填充的指示属性(和进度条类似,第一进度位置)
  • secondaryProgress:同progress一样属于第二进度位置(如果不定义这个,进度条拖动,每次就画出一整颗星星(亮),第二进度(暗)没有覆盖掉第一进度之后的位置,从左往右是拖不出来N.5颗星星的,这样评分效果就不完整)

相关文章

网友评论

本文标题:android RatingBar

本文链接:https://www.haomeiwen.com/subject/awyzlttx.html