7.6. RatingBar(评分组件)
|
使用默认组件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/MyLayout" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <RatingBar android:numStars="5" à评分星的个数 android:stepSize="0.5" à步长 android:isIndicator="false" à不可使用:false,可使用;true,不可使用 android:id="@+id/ratingbarA" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <RatingBar android:numStars="5" android:rating="3" android:isIndicator="true" android:id="@+id/ratingbarB" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </LinearLayout> |
可以不用Activity程序的支持,演示效果:
star_conf_file.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/star_empty"/> <item android:id="@+android:id/secondaryProgress" android:drawable="@drawable/star_empty"/> <item android:id="@+android:id/progress" android:drawable="@drawable/star_full"/> </layer-list> |
需在values资源文件夹里面配置样式:
styles.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="myRatingBarStyle" parent="@android:style/Widget.RatingBar"> <item name="android:progressDrawable"> @drawable/star_conf_file</item> <item name="android:minHeight">53dip</item> <item name="android:maxHeight">53dip</item> </style> </resources> |
activity_rating.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/MyLayout" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <RatingBar android:numStars="5" android:stepSize="0.5" android:isIndicator="false" android:id="@+id/ratingbar" style="@style/myRatingBarStyle" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </LinearLayout> |
Activity:
package com.makyan.demo; import android.app.Activity; import android.os.Bundle; import android.widget.RatingBar; import android.widget.TextView; public class RatingActivity extends Activity { private RatingBar ratingBar = null; // 定义评分组件 private TextView text = null; // 文本显示组件 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.activity_rating); ratingBar = (RatingBar) super.findViewById(R.id.ratingbar) ; ratingBar.setStepSize(1.0f) ; // 设置步长 text = (TextView) super.findViewById(R.id.text) ;// 取得组件 ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListenerImpl()); // 设置监听 } private class OnRatingBarChangeListenerImpl implements RatingBar.OnRatingBarChangeListener { @Override public void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser) { int num = (int) rating ; // 取得当前值 String result = null ; // 定义字符串保存结果 switch (num) { case 5: result = "非常满意"; // 显示信息 break ; case 4: result = "满意"; // 显示信息 break ; case 3: result = "还可以"; // 显示信息 break ; case 2: result = "不满意"; // 显示信息 break ; case 1: result = "非常不满意"; // 显示信息 break ; } RatingActivity.this.text.setText("您对www.makyanjava.cn的网站满意度是:"+ result); // 增加文本显示 } } } |
演示效果: