Звезды Android RatingBar с тенью/свечением

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

Я делаю незаполненные звезды прозрачными, используя следующий рисунок:

<?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="@android:color/transparent" />
    <item android:id="@android:id/secondaryProgress"
        android:drawable="@android:color/transparent" />
    <item android:id="@android:id/progress"
        android:drawable="@drawable/star" />
</layer-list>

person Sam Olesen    schedule 31.03.2014    source источник


Ответы (1)


Попробуйте использовать другую полосу рейтинга позади исходной и сделайте ее стиль тенью. Затем синхронизируйте нижнюю панель рейтинга с верхней.

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignLeft="@+id/textView1"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="22dp" >

<RatingBar
    android:id="@+id/ratingBar2"
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="0dp"
    android:layout_marginLeft="5dp"
    android:stepSize="0.5"
    android:focusable="false" />

<RatingBar
    android:id="@+id/ratingBar1"
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="10dp"
    android:stepSize="0.5"
     />

</RelativeLayout>

затем синхронизируйте рейтинг баров. Как только кто-то изменился, другой тоже изменится.

person Community    schedule 31.03.2014
comment
Я хочу иметь возможность использовать полузвезды android:stepSize="0.5", поэтому я совершенно уверен, что это не сработает. - person Sam Olesen; 31.03.2014
comment
Я уверен, что это сработает, или я неправильно понимаю ваш вопрос. - person ; 31.03.2014
comment
Теперь я понимаю ваше решение. К сожалению, я также хочу немного размыть тень. - person Sam Olesen; 31.03.2014
comment
Я хочу такой же эффект, как android:shadowRadius для текста. Создает размытую/мягкую тень. Ваше решение создаст резкий край на полузвездах Shadow-ratingBar, что сделает невозможным создание мягких теней. - person Sam Olesen; 01.04.2014
comment
Как насчет того, чтобы придать пользовательский стиль звезде рейтинга фона и установить для нее несколько мягких изображений !!! ??? - person ; 01.04.2014
comment
Опять же, это не сработает для полузвезд. Вот изображение, иллюстрирующее, как будет вырезана тень: i.imgur.com/C396fPh.png - person Sam Olesen; 02.04.2014
comment
Если вы имеете в виду, что правая сторона полузвезды будет резкой, то вы совершенно правы. - person ; 02.04.2014