RatingBar, uygulama kullanıcısından derecelendirme almak için kullanılır. Kullanıcı, derecelendirme değerini ayarlamak için yıldızlara dokunabilir, sürükleyebilir veya tıklayabilir. Derecelendirme değeri her zaman 1.0, 2.5, 4.5 vb. olabilen bir ondalık sayı döndürür.

Android’de RatingBar, bir derecelendirmeyi yıldızlarla gösteren ProgressBar ve SeekBar‘ın bir uzantısıdır. RatingBar, AbsSeekBar sınıfının bir alt sınıfıdır.
Android RatingBar sınıfının getRating() metodu, derecelendirme numarasını döndürür.
id özelliği
id, bir derecelendirme çubuğunu benzersiz şekilde tanımlamak için kullanılan bir özelliktir.
1 2 3 4 5 6 | <RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content"/> |
background özelliği
1 2 3 4 5 6 7 | <RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#f00"/> |
background niteliği, RatingBar‘ın arka planını ayarlamak için kullanılır. Bir derecelendirme çubuğunun arka planında bir renk veya çizilebilirlik ayarlayabiliriz.
numStars özelliği
numStars özelliği, bir derecelendirme çubuğunda görüntülenecek yıldızların (veya derecelendirme öğelerinin) sayısını ayarlamak için kullanılır. Varsayılan olarak bir derecelendirme çubuğu beş yıldız gösterir, ancak bunu numStars niteliğini kullanarak değiştirebiliriz.
numStars, 1,2 vb. gibi bir tam sayıya sahip olmalıdır.
Aşağıda, RatingBar’ın num stars değerini 7 olarak ayarladık.
1 2 3 4 5 6 7 | <RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="7"/> |

rating özelliği
Rating özelliği, bir derecelendirme çubuğunun varsayılan derecelendirmesini ayarlar. Kayan noktalı bir sayı olmalıdır.
Aşağıda, bir derecelendirme çubuğu için varsayılan derecelendirmeyi 3.5 olarak ayarladık.
1 2 3 4 5 6 7 | <RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:rating="3.5"/> |

Programatik olarak değiştirmek için ondalık sayı kabul eden setRating() metodu kullanılır.
1 2 3 4 5 | /* Bir olay içinde kullanılarak alınabilir */ RatingBar ratingBar1 = (RatingBar)findViewById(R.id.ratingBar1); ratingBar1.setRating((float)3.5); |
padding özelliği
padding niteliği, padding’i sol, sağ, üst veya alttan ayarlamak için kullanılır.
paddingRight: derecelendirme çubuğunun sağ tarafından dolguyu ayarlayın.
paddingLeft: derecelendirme çubuğunun sol tarafından dolguyu ayarlayın.
paddingTop: derecelendirme çubuğunun üst tarafından dolguyu ayarlayın.
paddingBottom: derecelendirme çubuğunun alt tarafından dolguyu ayarlayın.
padding: derecelendirme çubuğunun her tarafından dolguyu ayarlayın.
Aşağıda, derecelendirme çubuğunun her tarafından 20dp dolguyu ayarlıyoruz.
1 2 3 4 5 6 7 | <RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="20dp"/> |
getRating():
Derecelendirme numarasını bir RatingBar‘dan getRating() yöntemini kullanarak alabilirsiniz.
Bu metod ondalık sayı döndürür. Aşağıda, bir RatingBar‘dan mevcut derecelendirme numarasını alıyoruz.
1 2 3 4 5 | /* Bir olay içinde kullanılarak alınabilir */ RatingBar ratingBar1 = (RatingBar)findViewById(R.id.ratingBar1); Float puan = ratingBar1.getRating(); |
Android RatingBar Olay Kullanımı
Aşağıdaki örneklerde RatingBar ile bir kaç temel olay kullanımını gösteriyoruz.
setOnRatingBarChangeListener() kullanımı
Rating değiştiğinde istemcileri bilgilendiren bir callback tetiklenir. Bu, kullanıcı tarafından bir dokunma hareketi veya ok tuşu/iztopu ile başlatılan değişikliklerin yanı sıra programlı olarak başlatılan değişiklikleri içerir. Aşağıdaki örnekte Rating değiştiğinde TextView içinde değişen değeri göstermektedir.
XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <TextView android:text="TasarımKodlama" android:id="@+id/txt1" android:textSize="20sp" android:layout_width="match_parent" android:layout_height="wrap_content"/> <RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/txt1" android:rating="3.5" /> |
Java
1 2 3 4 5 6 7 8 9 10 11 12 | RatingBar ratingBar1 = (RatingBar)findViewById(R.id.ratingBar1); TextView txt1 =(TextView)findViewById(R.id.txt1); ratingBar1.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { @Override public void onRatingChanged(RatingBar ratingBar, float v, boolean b) { txt1.setText(Float.toString(ratingBar1.getRating())); } }); |

Butona Tıklayarak Oylama Yapma
Bir Button, bir TextView ve bir tane de RatingBar nesnesi kullanarak aşağıdaki gibi butona tıkladığımızda rating bar üzerindeki oy değerini TextView nesnesinde göstereceğiz.
XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <TextView android:text="TasarımKodlama" android:id="@+id/txt1" android:textSize="20sp" android:layout_width="match_parent" android:layout_height="wrap_content"/> <RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/txt1" android:rating="3.5" /> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/ratingBar1" android:text="Oyla"/> |
Java
1 2 3 4 5 6 7 8 9 10 11 12 | RatingBar ratingBar1 = (RatingBar)findViewById(R.id.ratingBar1); TextView txt1 =(TextView)findViewById(R.id.txt1); Button btn = (Button)findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { txt1.setText(Float.toString(ratingBar1.getRating())); } }); |

Daha fazla Android içeriği için Android Dersleri yazısını inceleyebilirsiniz.











1 Yorum