2016-02-19 9 views
2

я с проблемой рейтингового моделирования баромвыпуска стайлинга Рейтинг бар

Вот скриншот

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

Вот мой XML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#ffffff"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:background="#F0EEEF"> 
<TextView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:text="RATE OUR SERVICES" 
    android:gravity="center" 
    android:textColor="@color/textColor" 
    android:textStyle="bold"/> 
    </LinearLayout> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="By Quality" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="20dp"/> 
    <RatingBar 
     android:theme="@style/RatingBar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="5dp" 
     android:numStars="5" 
     android:isIndicator="false" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="By Services" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="10dp"/> 
    <RatingBar 
     android:theme="@style/RatingBar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="5dp" 
     android:numStars="5" 
     android:isIndicator="false" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="By Time" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="10dp"/> 
    <RatingBar 
     android:theme="@style/RatingBar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="5dp" 
     android:numStars="5" 
     android:isIndicator="false" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Overall Rating" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="10dp"/> 
    <RatingBar 
     android:theme="@style/RatingBar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="5dp" 
     android:numStars="5" 
     android:isIndicator="false" /> 
</LinearLayout> 
+0

Вместо wrap_content для layout_widht и layout_height введите свой размер в dp. (Е.g 150dp для layout_width) – Chol

+0

рейтинг бара обрезается при задании ширины высоты в dp –

+0

Я думаю, что RatingBar слишком статичен ..... см. здесь: http://stackoverflow.com/questions/2874537/how-to-make -a-less-ratingbar – Opiatefuchs

ответ

0

Вы можете создать собственный стиль для ratingbar, чтобы сделать его иметь подходящий размер:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="foodRatingBar" parent="@android:style/Widget.RatingBar"> 
     <item name="android:minHeight">48dip</item> <!-- your desired size --> 
     <item name="android:maxHeight">48dip</item> <!-- your desired size --> 
    </style> 
</resources> 

затем использовать этот стиль для вашего рейтинга бар. Существует более конкретный учебник: http://kozyr.zydako.net/2010/05/23/pretty-ratingbar/.

+0

попытается рассказать –

+0

без разницы с этим –

1

Вы можете использовать пользовательский RatingBar. Ниже приведен код 1. создать файл в Drawable в custom_ratingbar.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/star_empty" /> 
<item android:id="@android:id/secondaryProgress" 
android:drawable="@drawable/star_empty" /> 
<item android:id="@android:id/progress" 
android:drawable="@drawable/star_full" /> 
</layer-list> 

затем использовать следующее в вашем RatingBar: -

<RatingBar 
    android:id="@+id/ratingBar" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:progressDrawable="@drawable/custom_ratingbar" 
    android:numStars="5" 
    android:stepSize="0.2" 
    android:rating="3.0" /> 
0

Я сделал пользовательские ratingbar, которые могут помочь вам: SimpleRatingBar.

Он оснащен:

  • Полностью рабочий android:layout_width: он может быть установлен в wrap_content, match_parent или abritary дп.
  • Произвольное количество звезд.
  • Произвольный шаг размер.
  • Размер звезд можно контролировать точно или задавая максимальный размер.
  • Настраиваемые цвета (граница, заполнение и фон звезд).
  • Настраиваемый размер между звездами.
  • Настраиваемая ширина границ звезд.
  • Позволяет установить OnRatingBarChangeListener
  • Заполнение звездочек может начинаться слева направо или справа налево (поддержка языка RTL).
  • AnimationBuilder интегрирован в представление, чтобы установить рейтинг программно с анимацией.

Here is a preview of it.

Вы можете найти его либо в jcenter, либо в Maven Central. Таким образом, в файл build.gradle просто добавить к вашей зависимости:

compile 'com.iarcuschin:simpleratingbar:0.1.+'

Я надеюсь, что это полезно.

+1

Определенно попробует в следующий раз, когда проект завершен –

Смежные вопросы