笔记20--RatingBar

先上源码。

1、RatingBar是基于SeekBar和ProgressBar的扩展,星星默认颜色是绿色。

2、属性介绍:

numStars:显示的星星数量。

rating:设置默认的分数,浮点数。

stepSize:设置步长,浮点数。

isIndicator:true时,不可更改分数。

style:设置星星的格式。android提供两种默认的格式:大星星和小星星。style="?android:attr/ratingBarStyleSmall"、style="?android:attr/ratingBarStyleIndicator"

3、自定义

自定义RatingBar指自定义他的属性style。

原理:1)将style设置为我们自定义的style;2)在自定义style中继承@android:style/Widget.RatingBar,重写android:progressDrawable属性,设置RatingBar控件的大小;3)android:progressDrawable中设置选中的图片和未选中的图片。

首先在布局文件中加入RatingBar:

<RatingBar 
        android:id="@+id/rt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="5"
        android:rating="3"
        style="@style/MyRatingBar"/>/
然后再res/values目录下建立MyRatingBar.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="MyRatingBar" parent="@android:style/Widget.RatingBar">
        <item name="android:progressDrawable">@drawable/bar</item>
        <item name="android:minHeight">15dip</item>
        <item name="android:maxHeight">15dip</item>
    </style>

</resources>
最后在res/drawable目录下建立bar.xml文件:
<?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"/>
    <item
        android:id="@+android:id/secondaryProgress"
        android:drawable="@drawable/rating"/>
    <item
        android:id="@+android:id/progress"
        android:drawable="@drawable/rating_show"/>

</layer-list>

说明:定义组件的一级背景图、二级背景图时,里面的id都是系统的id,当系统运行到这里时会根据这个id去重画组件。

其实很多组件都可以通过这样的方法来使用。下载android源码,在源码\base\core\res\res\values目录下找到style.xml文件,该文件是android系统运行时需要加载的文件,里面保存了所有组件的样式定义。在里面你可以找到<style name="Widget.RatingBar.Small">,也有其他<style name="Widget SeekBar">、<style name="Widget.ProgressBar.Small">等等,这里的属性我们继承后就可以被重写成其他的了。





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值