Espacio entre estrellas de RatingBar


Necesito insertar un espacio entre las estrellas de mi RatingBar, ejemplo la ratingbar está bien:

introduzca la descripción de la imagen aquí

Pero lo necesito así:

introduzca la descripción de la imagen aquí

¿Cómo puedo hacer esto?

Author: ademar111190, 2012-06-19

5 answers

No se si será útil mas, pero hice una librería personalizada que te permite cambiar space beetwen stars programáticamente y en XML (entre otras cosas): SimpleRatingBar.

Cuenta con:

  • Completamente funcional android:layout_width: se puede establecer en wrap_content, match_parent o dp abritary.
  • Número arbitrario de estrellas.
  • Tamaño de paso arbitrario.
  • El tamaño de las estrellas se puede controlar exactamente o estableciendo un tamaño máximo.
  • Personalizable colores en estado normal(borde, relleno y fondo de estrellas y barra de clasificación).
  • Colores personalizables en estado presionado (borde, relleno y fondo de estrellas y barra de clasificación).
  • Separación de tamaño personalizable entre estrellas.
  • Ancho de borde personalizable de las estrellas.
  • Radio de esquina de estrellas personalizable.
  • Permite establecer OnRatingBarChangeListener
  • El relleno de estrellas se puede configurar para comenzar de izquierda a derecha o de derecha a izquierda (lenguaje RTL apoyo).
  • AnimationBuilder integrado en la vista para establecer la clasificación programáticamente con animación.

Aquí hay una vista previa de la misma .

En su caso, solo tendría que hacer:

ratingbar.setStarsSeparation(20, Dimension.DP);

O, por ejemplo, en píxeles:

ratingbar.setStarsSeparation(100, Dimension.PX);

Puedes encontrarlo en jcenter o en Maven Central. Así que en su archivo build.gradle simplemente agregue a sus dependencias:

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

 3
Author: FlyingPumba,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-22 03:30:30

Usted tiene una propiedad siguiente.

android:progressDrawable = "@drawable/rating_stars"
android:indeterminateDrawable = "@drawable/rating_stars"

@drawable / rating_stars:

<?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" />
</layer-list>

Star_empty y star son las imágenes que están en su directorio de elementos de diseño. Por lo tanto, puede cambiar star y star_empty en un editor gráfico y agregar un espacio si lo necesita.

 4
Author: i_Am,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-11 12:41:35

Simplemente use el icono personalizado para él y use el estilo , me refiero a Photoshop como desea que se vea y reemplace con el icono de estilo de clasificación del sistema.

 1
Author: Rajeev Kumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-14 07:04:51

Creo que tendrías que tomar una copia del archivo png de la estrella de systems y agregar manualmente el relleno que quieras con un editor de photoshop / gimp / algún otro.

 0
Author: FoamyGuy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-18 23:29:01

Estoy de acuerdo con Tim apliqué la misma lógica y funcionó. Aquí en mi proyecto estoy usando mis propias imágenes de estrellas para el star ratin Hice imágenes de estrellas con espacio adicional (relleno) en el lado derecho que resultó en espacio entre las estrellas

 0
Author: Meher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-04 14:50:05