[Android] RatingBar Android 2011. 12. 21. 16:02

레이팅바는 흔히 많이 보는 별 모양을 클릭하면서 점수를 입력 받는 것이다.

XML은 다음과 같이 작성을 한다.

<RatingBar
        android:id="@+id/ratingbar1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:stepSize="0.2"
        android:rating="3"
    />

여기에서 stepSize는 클릭 위치에 따라 얼마나 rating을 증가 시킬 것인가 이고 rating은 현재 값 설정이다.

numStars의 경우는 별의 숫자, isIndicator는 편집 가능 유무를 말하며 true로 둘 경우 편집이 불가능 하다.

또한 style="?android:attr/ratingBarStyleSmall 은 별의 형태를 작게 나타내며 읽기 전용으로 변화가 되고, ratingBarStyleIndicator를 적용하면 그냥 읽기 전용으로 적용이 된다.

테스트 할 자바 파일은 다음과 같다.

public class ImageViewActivity extends Activity{
 RatingBar _rating;
 TextView _text;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        _rating = (RatingBar)findViewById(R.id.ratingbar1);
        _text = (TextView)findViewById(R.id.text);
       
        _rating.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {   
   @Override
   public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
    _text.setText("Value : " + rating);
   }
  });
    } 
}