今天做一个评分的功能,但是Android自带的ratingbar的格式限制太多,只有两种格式提供,一个是特别大的,一个是特别小的,根本无法用到商业项目中去,于是自己自定义了一下ratingbar效果如下所示:


RatingBar为评分条控件,默认效果为若干个绿色的星星,如果想将其换成其他自定义图片就要自定义它的style。

<RatingBar                            android:id="@+id/detail_rb_score_detail"                            style="@style/MyRatingBar"                            android:layout_width="wrap_content"                            android:layout_height="wrap_content"                            android:layout_toLeftOf="@id/detail_tv_score_detail"                            android:numStars="5"                            android:rating="1.5"                            android:stepSize="0.5" />


其中android:numStars="5"设置显示的星星数量为5; android:rating="5"设置选中的数量为5,也就是全部选中

android:isIndicator="true"设置评分条只显示结果无法通过点击改变选中状态。


然后在res/values目录下建立styles.xml文件 代码:

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


android:progressDrawable为评分条图案。接下来在res/drawable目录下建立RatingBar.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/detail_float" />    <item android:id="@+android:id/progress"            android:drawable="@drawable/rating_show" />  </layer-list>

layer-list 可以把图片进行层叠,实现类似的效果!

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >    <item android:id="@+android:id/background"              android:drawable="@drawable/detail_score_bg" />        <item android:id="@+android:id/secondaryProgress"          android:drawable="@drawable/detail_float" />    <item android:id="@+android:id/progress"          android:drawable="@drawable/detail_score_press" />    </layer-list>

<item android:id="@+android:id/background"
android:drawable="@drawable/detail_score_bg" /> 这个是背景图片,也就是灰色的星星
<item android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/detail_float" />这个是半个红色星星,进度是0.5时使用
<item android:id="@+android:id/progress"
android:drawable="@drawable/detail_score_press" /> 这个是整个红色星星

如有问题请留言,若转载注明出处。



更多相关文章

  1. Eclipse开发Android常用快捷键
  2. android 深入研究ratingbar自定义
  3. ExpandableListView设置选中child的背景
  4. android评分条RatingBar自定义设置
  5. Android的简单组件总结
  6. android评分条RatingBar自定义设置
  7. Android(安卓)RadioGroup设置默认选中项
  8. Android(安卓)图片选择器用法
  9. 【Android自学笔记】为Android应用程序添加Rate功能

随机推荐

  1. 〖Android〗存在多个Android设备时,使用Sh
  2. Android Selector和Shape
  3. 关于android SDK安装Failed to fetch URL
  4. 【Android】如何调节屏幕亮度,关闭屏幕
  5. 如何申请Android Map API Key
  6. Androkd开发坏境配置以及常用插件
  7. ListView高级用法
  8. Android(安卓)用 libusb 操作 USB 设备,无
  9. Android证书创建之 keytool 错误:java.io.
  10. android开发之实现应用内音乐的播放