Как изменить изображения звездочек в RatingBar?
Вопрос
С 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