RatingBar

 

属性名称

描述

android:isIndicator

RatingBar是否是一个指示器(用户无法进行更改)

android:numStars

显示的星型数量必须是一个整形值,像“100”。

android:rating

默认的评分,必须是浮点类型,像“1.2”。

android:stepSize

评分的步长必须是浮点类型,像“1.2”。

 

我们在平时应用时,有时会自定义样式,换成自己想要的效果,下面的例子是把RatingBar的图片换成自己的。我为了省事就用Sdk里面自带的图片来实现这一效果

在res目录下创建一个Drable文件夹,在这个文件夹里创建一个barstyle.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/rate_star_med_off" />
    <item android:id="@+android:id/secondaryProgress"
          android:drawable="@drawable/rate_star_med_off" />
    <item android:id="@+android:id/progress"
          android:drawable="@drawable/rate_star_med_on" />
</layer-list>

 rate_star_med_off 代表在没有选择前的样式,rate_star_med_on代表选择后的样式。

然后再创建一个xml文件,我放在了values文件夹里styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<style name="foodRatingBar" parent="@android:style/Widget.RatingBar">
		<item name="android:progressDrawable">@drawable/barstyle</item>
		<item name="android:minHeight">48dip</item>
  		<item name="android:maxHeight">48dip</item>
	</style>
</resources>

 

  在这个里面有个barstyle是引用上面那个xml文件,

最后创建layout xml文件main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
	<RatingBar android:id="@+id/bar_rb" android:layout_width="wrap_content"
		android:layout_height="wrap_content" style="@style/foodRatingBar"
		android:isIndicator="false" android:stepSize="1"
		android:numStars="5" android:rating="2" />
</LinearLayout>

 里面的两张样式图片自己可以换成自己的

你可能感兴趣的:(xml,android)