У меня есть layout
, где я хочу показать RatingBar
пользователю. Я использую свои собственные значки вместо звездочек по умолчанию. Моя проблема в том, что значки в векторном формате, и когда я их использую, я получаю странные эффекты (см. Изображение ниже). Он должен отображать 5 значков, но показывает только один, почему?
Когда я конвертирую свои векторные изображения в .png
, все в порядке.
Я добавлю сюда свой код код моих иконок (в папке drawable
) //empty_rate.xml
:
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportWidth="48"
android:viewportHeight="48"
android:width="8dp"
android:height="8dp">
<group
android:translateX="117"
android:translateY="-118.5">
<path
android:pathData="M-93 122.5c-11 0 -20 9 -20 20 0 11 9 20 20 20 11 0 20 -9 20 -20 0 -11.1 -9 -20 -20 -20zm0 36c-8.8 0 -16 -7.2 -16 -16 0 -8.8 7.2 -16 16 -16 8.8 0 16 7.2 16 16 0 8.8 -7.2 16 -16 16z"
android:fillColor="#076127" />
</group>
</vector>
//middle_rate.xml
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportWidth="48"
android:viewportHeight="48"
android:width="4dp"
android:height="4dp">
<group
android:translateX="117"
android:translateY="-118.5">
<path
android:pathData="M-93 122.5c-11 0 -20 9 -20 20 0 11 9 20 20 20 11 0 20 -9 20 -20 0 -11.1 -9 -20 -20 -20zm0 36c-8.8 0 -16 -7.2 -16 -16 0 -8.8 7.2 -16 16 -16 8.8 0 16 7.2 16 16 0 8.8 -7.2 16 -16 16z"
android:fillColor="#076127" />
<path
android:pathData="M-105.2 142.5c0 -6.7 5.4 -12.2 12.2 -12.2l0 24.3c-6.7 0 -12.2 -5.4 -12.2 -12.1z"
android:fillColor="#076127" />
</group>
</vector>
//full_rate.xml
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportWidth="48"
android:viewportHeight="48"
android:width="8dp"
android:height="8dp">
<group
android:translateX="117"
android:translateY="-118.5">
<path
android:pathData="M-93 122.5c-11 0 -20 9 -20 20 0 11 9 20 20 20 11 0 20 -9 20 -20 0 -11.1 -9 -20 -20 -20zm0 36c-8.8 0 -16 -7.2 -16 -16 0 -8.8 7.2 -16 16 -16 8.8 0 16 7.2 16 16 0 8.8 -7.2 16 -16 16z"
android:fillColor="#076127" />
<path
android:pathData="M-80.8 142.5a12.2 12.2 0 0 1 -12.2 12.2 12.2 12.2 0 0 1 -12.2 -12.2 12.2 12.2 0 0 1 12.2 -12.2 12.2 12.2 0 0 1 12.2 12.2z"
android:fillColor="#076127" />
</group>
</vector>
вот мой layout
для RatingBar
<RatingBar
android:isIndicator="true"
style="@style/CustomRatingBar"
android:layout_gravity="right"
android:id="@+id/rate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"/>
Вот мой styles.xml
:
<style name="CustomRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/custom_ratingbar_selector</item>
<item name="android:minHeight">24dip</item>
<item name="android:maxHeight">24dip</item>
</style>
а вот мой custom_ratingbar_selector.xml
в (папке drawable
)
<?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/empty_rate" />
<item android:id="@android:id/secondaryProgress"
android:drawable="@drawable/middle_rate" />
<item android:id="@android:id/progress"
android:drawable="@drawable/full_rate" />
</layer-list>
Так что же не так? Как решить проблему?