По мере того, как индустрия приложений процветает день ото дня, приложения становятся все лучше и лучше, а с помощью разработчика рейтинговой системы и пользовательского опыта увеличивается.
Рейтинговая система — это не просто выставление звездочек, а смысл в том, что она дает хорошую обратную связь новым пользователям и помогает им выбрать приложение. А в современном обществе каждый человек сначала проверяет рейтинг, а затем выбирает товар. От установки нового приложения до покупки продукта — эта рейтинговая система присутствует везде. Эти рейтинговые системы помогают повысить производительность и ответственность разработчика или производителя.
Итак, давайте создадим Android-приложение с рейтинговой системой.
Прежде всего, создайте проект в студии Android и после синхронизации всех зависимостей перейдите к папке drawable. Здесь нам нужно создать несколько файлов XML, которые работают за кулисами. Итак, давайте начнем.
Давайте перенесем значок звездочки в отображаемую папку. Для изображения перейдите на flaticon.com и выберите любой значок рейтинга. Иконок очень много. И вы должны выбрать две иконки
- Значок без цвета
- Значок с заливкой цветом
И загрузите эти значки в формате .png с разрешением 24*24 пикселей. Вы можете выбрать любой размер, но этот размер подходит для большинства устройств.
Обратите внимание, что вы должны переименовать файл значка в
- Изображение без цвета в формате star_empty.png
- Изображение с заливкой цветом 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() } }
Теперь, когда мы разработали приложение, давайте запустим его и проверим.
Заключение
Нам всем нужна рейтинговая система в каждом приложении, которая повышает доверие разработчика, а также помогает ему, чтобы сделать приложение лучше. Это возраст, когда мы все смотрим на рейтинги и в конечном итоге судим о них, потому что наши пожилые люди прошли через приложение и используют его.
Надеюсь, эта статья поможет многим разработчикам вставить панель рейтинга в свое приложение. В случае, если вы вызвали некоторые трудности, мой исходный код указан ниже. Посмотрите и, пожалуйста, поставьте звезду вон там.
Посетите исходный код Исходный код
Спасибо, что прочитали и потратили свое драгоценное время, надеюсь, вам понравится.
Будьте в безопасности и оставайтесь на связи.