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

StackOverflow https://stackoverflow.com/questions/607610

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Спасибо.

Это было полезно?

Решение

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

Исходный код доступен через git на сайте Developer.android.com.

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

Другие советы

Не уверен насчет 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" ... /> 

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top