tags:

views:

1317

answers:

3

With Android SDK 1.1 r1, is there any way to change the RatingBar widget class's star image with my own? Is this possible at all? If so, then how? Thanks.

+3  A: 

The short answer is it looks like it's techincally possible. The easiest way would be to create your own RatingBar based on the RatingBar sourcecode (more elegant would be to extend the orignal RatingBar into your own). From there you would also need to create your own RatingBar style using the original RatingBar source xml as an example (or inheriting and extending the original RatingBar style).

Source is available wtih git at developer.android.com.

I suspect making your own rating bar is discouraged since it goes against the consistent look and feel of the OS.

Will
+2  A: 

Not sure about 1.1, but with 1.6 and later you can just extend "Widget.RatingBar" style and override the properties that are responsible for star drawables (in values/styles.xml):

 <style name="myRatingBar" parent="@android:style/Widget.RatingBar">
        <item name="android:progressDrawable">@drawable/my_ratingbar_full</item>
        <item name="android:indeterminateDrawable">@drawable/my_ratingbar_full</item>
 </style>

There's no need to subclass RatingBar, just pass this style to it with the 'style' attribute:

<RatingBar style="@style/myRatingBar" ... /> 

Download android sources and look at the ratingbar_full.xml in the core drawable folder to see what to put into my_ratingbar_full.

I also ended up writing a blog post on this: http://kozyr.zydako.net/2010/05/23/pretty-ratingbar/

kozyr
A: 

how can you make this dynamic??? as in how do you make the image change when some one clicks rating?? i tried selector did'nt work.....

ketaki