Подтвердить что ты не робот

Как изменить звездные изображения в RatingBar?

С Android SDK 1.1 r1, есть ли способ изменить звездочное изображение класса виджетов RatingBar с моим собственным? Это вообще возможно? Если да, то как?

Спасибо.

4b9b3361

Ответ 1

Короткий ответ: похоже, это возможно в техническом плане. Самый простой способ - создать свой собственный RatingBar, основанный на исходном коде RatingBar (более элегантным будет extend orignal RatingBar в свой собственный). Оттуда вам также нужно будет создать свой собственный стиль RatingBar, используя исходный XML-источник RatingBar в качестве примера (или наследующий и расширяющий оригинальный стиль RatingBar).

Источник доступен с git на сайте developer.android.com.

Я подозреваю, что создание собственной рейтинговой панели не рекомендуется, поскольку оно противоречит постоянному взгляду ОС.

Ответ 2

Не уверен в 1.1, но с 1.6 и более поздними версиями вы можете просто расширить стиль Widget.RatingBar и переопределить свойства, отвечающие за звездообразные чертежи (в 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>

Нет необходимости подкласса RatingBar, просто передайте ему этот стиль с атрибутом style:

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

Загрузите исходники и посмотрите на ratingbar_full.xml в основной выпадающей папке, чтобы посмотреть, что положить в my_ratingbar_full.

Вы можете найти более полную версию этого здесь: Как создать панель пользовательских рейтингов в Android