RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定。使用RatingBar的默认大小时,用户可以触摸/拖动或使用键来设置评分,它有两种样式(小风格用ratingBarStyleSmall,大风格用ratingBarStyleIndicator)。在工程中设置了三种样式风格的RatingBar,并且当点击按钮的时候可以改变星星的级数。
效果图:
layout文件中的xml文件:
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical"
- android:background="#ff00ff">
- <TextView
- android:id="@+id/myTextView"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="当前评分:" />
- <RatingBar
- android:id="@+id/myRatingBar1"
- android:numStars="5" //设置星星的数量
- android:rating="5" //设置当前的星星级数
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:isIndicator="false"
- style="?android:attr/ratingBarStyle" //设置RatingBar的样式
- />
- <RatingBar
- android:id="@+id/myRatingBar2"
- android:numStars="5"
- android:rating="5"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:isIndicator="false"
- style="?android:attr/ratingBarStyleIndicator"
- />
- <RatingBar
- android:id="@+id/myRatingBar3"
- android:numStars="5"
- android:rating="5"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:isIndicator="false"
- style="?android:attr/ratingBarStyleSmall"
- />
- </LinearLayout>
Activaty.java文件
- package com.cheng.ratingbarproject;
- import android.os.Bundle;
- import android.app.Activity;
- import android.view.Menu;
- import android.widget.RatingBar;
- import android.widget.TextView;
- import android.widget.RatingBar.OnRatingBarChangeListener;
- public class RatingBarProject extends Activity {
- //定义组件
- private RatingBar mRatingBar1;
- private RatingBar mRatingBar2;
- private RatingBar mRatingBar3;
- private TextView mTextView;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- super.setContentView(R.layout.main);
- //获得组件
- mRatingBar1 = (RatingBar)findViewById(R.id.myRatingBar1);
- mRatingBar2 = (RatingBar)findViewById(R.id.myRatingBar2);
- mRatingBar3 = (RatingBar)findViewById(R.id.myRatingBar3);
- mTextView = (TextView)findViewById(R.id.myTextView);
- //设置RatingBar的监听器
- OnRatingBarChangeListener orbcl = new OnRatingBarChangeListener() {
- //当点击的时候将当前的星星级数改变为点击的位置的值
- @Override
- public void onRatingChanged(RatingBar ratingBar, float rating,
- boolean fromUser) {
- // TODO Auto-generated method stub
- mRatingBar2.setRating(rating);
- mRatingBar3.setRating(rating);
- mTextView.setText("当前分数:"+ rating);
- }
- };
- //绑定监听器
- mRatingBar1.setOnRatingBarChangeListener(orbcl);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- }
ok,今天到此了。