RatingBar с нестандартными рисунками работает странно - PullRequest
0 голосов
/ 13 декабря 2018

Я хотел использовать RatingBar с моими собственными двумя изображениями.Я ищу решение, но все еще не удается.Здесь есть тема с лучшим ответом: https://stackoverflow.com/a/5800686/7329859

Я решил создать новый проект, чтобы реализовать только вещи для RatingBar, как решение из предыдущей темы.Проект здесь: https://github.com/Wiktorl4z/ratingbar

ratingbar.xml

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

ratingbar_empty.xml

  <?xml version="1.0" encoding="utf-8"?>

<!-- This is the rating bar drawable that is used to
 show a filled cookie. -->
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"
        android:state_window_focused="true"
        android:drawable="@drawable/folder" />

    <item android:state_focused="true"
        android:state_window_focused="true"
        android:drawable="@drawable/folder" />

    <item android:state_selected="true"
        android:state_window_focused="true"
        android:drawable="@drawable/folder" />

    <item android:drawable="@drawable/folder" />

</selector>

ratingbar_filled.xml

<?xml version="1.0" encoding="utf-8"?>

<!-- This is the rating bar drawable that is used to
show a unfilled cookie. -->
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"
        android:state_window_focused="true"
        android:drawable="@drawable/camera" />

    <item android:state_focused="true"
        android:state_window_focused="true"
        android:drawable="@drawable/camera" />

    <item android:state_selected="true"
        android:state_window_focused="true"
        android:drawable="@drawable/camera" />

    <item android:drawable="@drawable/camera" />

</selector>

styles.xml

   <style name="CustomRatingBar" parent="Widget.AppCompat.RatingBar">
        <item name="android:progressDrawable">@drawable/ratingbar</item>
        <item name="android:minHeight">50dp</item>
        <item name="android:maxHeight">50dp</item>
    </style>

activity.xml

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <RatingBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style= "@style/CustomRatingBar"
        android:id="@+id/ratingBar"
        android:numStars="9" />

</LinearLayout>

This is how it display

Потратив несколько часов, я решил спросить о переполнении стекачто я делаю не так?

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

, так что большая вещь происходит в ratingbar.xml. Вы должны изменить все

<item android:id="@+id/ на

<item android:id="@android:id/"

После этого изменения все работает.

0 голосов
/ 13 декабря 2018

Попробуйте использовать изображение PNG.RatingBar не работает так же хорошо с SVG.

...