Android 控件之RatingBar评分条
RatingBar是Adnroid中的評分條。效果挺得的
?
源碼下載
一、概述
RatingBar是SeekBar和ProgressBar的擴展,用星星來評級。使用的默認大小RatingBar時,用戶可以觸摸/拖動或使用鍵來設置評分,它有倆種樣式(大、小),其中大的只適合指示,不適合于用戶交互。
二、實例
1.布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
??? android:orientation="vertical"
??? android:paddingLeft="10dip"
??? android:layout_width="match_parent"
??? android:layout_height="match_parent">
??? <RatingBar android:id="@+id/ratingbar1"
??????? android:layout_width="wrap_content"
??????? android:layout_height="wrap_content"
??????? android:numStars="3"
??????? android:rating="2.5" />
??? <RatingBar android:id="@+id/ratingbar2"
??????? android:layout_width="wrap_content"
??????? android:layout_height="wrap_content"
??????? android:numStars="5"
??????? android:rating="2.25" />
??? <LinearLayout
??????? android:layout_width="match_parent"
??????? android:layout_height="wrap_content"
??????? android:layout_marginTop="10dip">
???????
??????? <TextView android:id="@+id/rating"
??????????? android:layout_width="wrap_content"
??????????? android:layout_height="wrap_content" />
???????????
??????? <RatingBar android:id="@+id/small_ratingbar"
??????????? style="?android:attr/ratingBarStyleSmall"
??????????? android:layout_marginLeft="5dip"
??????????? android:layout_width="wrap_content"
??????????? android:layout_height="wrap_content"
??????????? android:layout_gravity="center_vertical" />
???????????
??? </LinearLayout>
??? <RatingBar android:id="@+id/indicator_ratingbar"
??????? style="?android:attr/ratingBarStyleIndicator"
??????? android:layout_marginLeft="5dip"
??????? android:layout_width="wrap_content"
??????? android:layout_height="wrap_content"
??????? android:layout_gravity="center_vertical" />
???????????
</LinearLayout>
2.Java代碼
package wjq.WidgetDemo;
import android.app.Activity;
import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.TextView;
import android.widget.RatingBar.OnRatingBarChangeListener;
public class RatingBarDemo extends Activity implements
??OnRatingBarChangeListener {
?private RatingBar mSmallRatingBar;
?private RatingBar mIndicatorRatingBar;
?private TextView mRatingText;
?/*
? * (non-Javadoc)
? *
? * @see android.app.Activity#onCreate(android.os.Bundle)
? */
?@Override
?protected void onCreate(Bundle savedInstanceState) {
??// TODO Auto-generated method stub
??super.onCreate(savedInstanceState);
??setContentView(R.layout.ratingbarpage);
??
?? mRatingText = (TextView) findViewById(R.id.rating);
???????? // We copy the most recently changed rating on to these indicator-only
???????? // rating bars
???????? mIndicatorRatingBar = (RatingBar) findViewById(R.id.indicator_ratingbar);
???????? mSmallRatingBar = (RatingBar) findViewById(R.id.small_ratingbar);
????????
???????? // The different rating bars in the layout. Assign the listener to us.
???????? ((RatingBar)findViewById(R.id.ratingbar1)).setOnRatingBarChangeListener(this);
???????? ((RatingBar)findViewById(R.id.ratingbar2)).setOnRatingBarChangeListener(this);
?}
?@Override
?public void onRatingChanged(RatingBar ratingBar, float rating,
???boolean fromUser) {
?? final int numStars = ratingBar.getNumStars();
???????? mRatingText.setText(
????????????????? " 受歡迎度" + rating + "/" + numStars);
???????? // Since this rating bar is updated to reflect any of the other rating
???????? // bars, we should update it to the current values.
???????? if (mIndicatorRatingBar.getNumStars() != numStars) {
???????????? mIndicatorRatingBar.setNumStars(numStars);
???????????? mSmallRatingBar.setNumStars(numStars);
???????? }
???????? if (mIndicatorRatingBar.getRating() != rating) {
???????????? mIndicatorRatingBar.setRating(rating);
???????????? mSmallRatingBar.setRating(rating);
???????? }
???????? final float ratingBarStepSize = ratingBar.getStepSize();
???????? if (mIndicatorRatingBar.getStepSize() != ratingBarStepSize) {
???????????? mIndicatorRatingBar.setStepSize(ratingBarStepSize);
???????????? mSmallRatingBar.setStepSize(ratingBarStepSize);
???????? }
?}
}
總結
以上是生活随笔為你收集整理的Android 控件之RatingBar评分条的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html帮助文档乱码,使用doxygen
- 下一篇: 云视频安防监控解决方案