По мере того, как индустрия приложений процветает день ото дня, приложения становятся все лучше и лучше, а с помощью разработчика рейтинговой системы и пользовательского опыта увеличивается.

Рейтинговая система — это не просто выставление звездочек, а смысл в том, что она дает хорошую обратную связь новым пользователям и помогает им выбрать приложение. А в современном обществе каждый человек сначала проверяет рейтинг, а затем выбирает товар. От установки нового приложения до покупки продукта — эта рейтинговая система присутствует везде. Эти рейтинговые системы помогают повысить производительность и ответственность разработчика или производителя.

Итак, давайте создадим Android-приложение с рейтинговой системой.

Прежде всего, создайте проект в студии Android и после синхронизации всех зависимостей перейдите к папке drawable. Здесь нам нужно создать несколько файлов XML, которые работают за кулисами. Итак, давайте начнем.

Давайте перенесем значок звездочки в отображаемую папку. Для изображения перейдите на flaticon.com и выберите любой значок рейтинга. Иконок очень много. И вы должны выбрать две иконки

  1. Значок без цвета
  2. Значок с заливкой цветом

И загрузите эти значки в формате .png с разрешением 24*24 пикселей. Вы можете выбрать любой размер, но этот размер подходит для большинства устройств.
Обратите внимание, что вы должны переименовать файл значка в

  1. Изображение без цвета в формате star_empty.png
  2. Изображение с заливкой цветом star_fill.png

Создайте файл с именем star_empty.xml и поместите в него следующий код.

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" 
        android:state_window_focused="true" 
        android:drawable="@drawable/star_empty"/>
<item android:state_focused="true" 
        android:state_window_focused="true" 
        android:drawable="@drawable/star_empty"/>
<item android:state_selected="true"
         android:state_window_focused="true" 
        android:drawable="@drawable/star_empty"/>
<item android:drawable="@drawable/star_empty"/>
 
</selector>

Теперь создайте другой файл с именем star_fill.xml и поместите следующий код.

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
         android:state_window_focused="true"
         android:drawable="@drawable/star_fill"/>
<item android:state_focused="true" 
        android:state_window_focused="true" 
        android:drawable="@drawable/star_fill"/>
<item android:state_selected="true"
         android:state_window_focused="true"
         android:drawable="@drawable/star_fill"/>
      <item android:drawable="@drawable/star_fill"/>
</selector>

Теперь мы создаем файл custom_rating.xml.

<?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background" 
        android:drawable="@drawable/rating_empty"/>
<item android:id="@android:id/secondaryProgress"
         android:drawable="@drawable/rating_empty"/>
<item android:id="@android:id/progress" 
        android:drawable="@drawable/rating_fill"/>
</layer-list>

Теперь пришло время перейти к style.xml, где вам нужно задать стиль для панели рейтинга. Поместите в него следующий код.

<style name="CustomRating" parent="Widget.AppCompat.RatingBar">
     <item name="android:progressDrawable">@drawable/custom_rating   </item>
     <item name="android:minHeight">10dp</item>
     <item name="android:maxHeight">40dp</item>
     <item name="android:minWidth">100dp</item>
     <item name="android:maxWidth">20dp</item>
</style>

Теперь перейдите к файлу color.xml, где мы должны объявить цвет кнопки, которую будем использовать.

<color name="submitButton">#e53935</color>
     <color name="textButton">#FFFFFF</color>

Теперь пришло время спроектировать главную страницу и перейти к activity_main.xml. Здесь у нас есть «дизайн» панели рейтинга вместе с кнопкой, которая отправляет рейтинг. Поместите следующий код.

<RatingBar
         android:id="@+id/customRating"
         style="@style/CustomRating" 
         android:layout_width="121dp"
         android:layout_height="24dp"
         android:numStars="5"
         android:rating="1.0"
         android:stepSize="1.0"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintVertical_bias="0.634"
         tools:ignore="MissingConstraints" />
<Button
         android:id="@+id/button"
         android:layout_width="280dp"
         android:layout_height="45dp"
         android:background="@color/submitButton"
         android:text="Submit"
         android:textColor="@color/textButton"
         android:textSize="20dp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintHorizontal_bias="0.591"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintVertical_bias="0.844"
         tools:ignore="MissingConstraints" />

Теперь, когда мы завершили часть пользовательского интерфейса нашего приложения, пришло время придать ему некоторую логику и функциональность. Направляется к ActivityMain.kt
Для функциональности мы предоставили тост, который сообщает нам, сколько звезд или сердец дано. Итак, давайте скопируем код.

val ratingBar = findViewById<RatingBar>(R.id.customRating) 
    if (ratingBar != null) { 
        val button = findViewById<Button>(R.id.button)
        button?.setOnClickListener { 
           val msg = ratingBar.rating.toString() 
           Toast.makeText( 
              this@MainActivity, 
              “Rating is: “ + msg, Toast.LENGTH_SHORT 
           ).show()
        } 
    }

Теперь, когда мы разработали приложение, давайте запустим его и проверим.

Заключение

Нам всем нужна рейтинговая система в каждом приложении, которая повышает доверие разработчика, а также помогает ему, чтобы сделать приложение лучше. Это возраст, когда мы все смотрим на рейтинги и в конечном итоге судим о них, потому что наши пожилые люди прошли через приложение и используют его.

Надеюсь, эта статья поможет многим разработчикам вставить панель рейтинга в свое приложение. В случае, если вы вызвали некоторые трудности, мой исходный код указан ниже. Посмотрите и, пожалуйста, поставьте звезду вон там.

Посетите исходный код Исходный код

Спасибо, что прочитали и потратили свое драгоценное время, надеюсь, вам понравится.

Будьте в безопасности и оставайтесь на связи.