Yukarıdakilerin verdiğini düşündüğümden daha kolay bir çözüm buldum ve kendinizinkinden daha kolay bir çözüm buldum. Basitçe küçük bir derecelendirme çubuğu oluşturdum, sonra ona bir onTouchListener ekledim. Oradan tıklamanın genişliğini hesaplarım ve bundan yıldız sayısını belirlerim. Bunu birkaç kez kullandıktan sonra, bulduğum tek tuhaf, küçük bir derecelendirme çubuğunun çiziminin, bir LinearLayout içine yerleştirmedikçe her zaman bir tabloda sağa dönmediği (editöre doğru görünüyor, ancak cihaza değil) . Her neyse, düzenimde:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RatingBar
android:id="@+id/myRatingBar"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5" />
</LinearLayout>
ve faaliyetlerim dahilinde:
final RatingBar minimumRating = (RatingBar)findViewById(R.id.myRatingBar);
minimumRating.setOnTouchListener(new OnTouchListener()
{
public boolean onTouch(View view, MotionEvent event)
{
float touchPositionX = event.getX();
float width = minimumRating.getWidth();
float starsf = (touchPositionX / width) * 5.0f;
int stars = (int)starsf + 1;
minimumRating.setRating(stars);
return true;
}
});
Umarım bunun bir başkasına yardımı olur. Kesinlikle kendi çizmek daha kolay (Ben de işe yarıyor buldum, ama ben sadece yıldızların kolay kullanımı istedim).