Rating BarChắc các bạn đã từng thấy dãy ngôi sao màu vàng dưới các ảnh quảng cáo bộ phim trên web.. Hay các dãy sao đánh giá mức độ hài lòng của mọi người với cái gì đó.. Sau đây mình sẽ
Trang 1Rating Bar
Chắc các bạn đã từng thấy dãy ngôi sao màu vàng dưới các ảnh quảng cáo bộ phim trên web Hay các dãy sao đánh giá mức độ hài lòng của mọi người với cái gì đó Sau đây mình sẽ demo các tạo và sử dụng Rating Bar.
1/ Các bạn tạo 1 project như sau:
Build Target: Android 3.0
Application Name: RatingBarExample
Package Name: com.org RatingBarExample
Activity Name: RatingBarExample
Min SDK Version: 11
2/ Các bạn code lại giao diện trong file main.xml như sau:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
>
<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"
Trang 2android: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>
3/ Các bạn thêm vào vào strings.xml như sau:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, RatingBarExample!</string>
<string name="app_name">RatingBarExample</string>
<string name="ratingbar_rating">Rating:</string>
</resources>
4/ Và cuối cùng các bạn viết code xử lý các sự kiện trên Rating Bar trong file : RatingBarExample như sau:
package com.org.RatingBarExample;
import android.app.Activity;
import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.TextView;
public class RatingBarExample extends Activity implements
RatingBar.OnRatingBarChangeListener {
RatingBar mSmallRatingBar;
RatingBar mIndicatorRatingBar;
TextView mRatingText;
/** Called when the activity is first created */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mRatingText = (TextView) findViewById(R.id.rating);
mIndicatorRatingBar = (RatingBar) findViewById(R.id.indicator_ratingbar); mSmallRatingBar = (RatingBar) findViewById(R.id.small_ratingbar);
((RatingBar)findViewById(R.id.ratingbar1)).setOnRatingBarChangeListener(this);
((RatingBar)findViewById(R.id.ratingbar2)).setOnRatingBarChangeListener(this);
Trang 3}
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromTouch) {
final int numStars = ratingBar.getNumStars();
mRatingText.setText(
getString(R.string.ratingbar_rating) + " " + rating + "/" +
numStars);
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);
}
}
}
Cuối cùng các bạn debug ứng dụng và kéo thử các ngôi sao trên Virtual Device và sẽ kết quả như sau:
Trang 4Mọi ý kiến đóng góp các bạn vui lòng post bài vào forum của trang web
www.laptrinhdidong.vn Mình rất mong nhận được sự phản hồi của các bạn Mình sẽ cập nhật trang web thường xuyên