Pregunta Espacio entre estrellas de ratingBar


Necesito insertar un espacio entre las estrellas de mi ratingBar, por ejemplo, la barra de calificación está bien:

enter image description here

pero lo necesito así:

enter image description here

¿como puedo hacer esto?


32
2018-06-18 23:24


origen


Respuestas:


No sé si ya será útil, pero hice una biblioteca personalizada que le permite cambiar el espacio entre las estrellas programáticamente y en XML (entre otras cosas): SimpleRatingBar.

Cuenta con:

  • Totalmente trabajando android:layout_width: se puede configurar para wrap_content, match_parent o abritary dp.
  • 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.
  • Colores personalizables en estado normal (borde, relleno y fondo de estrellas y barra de clasificación).
  • Colores personalizables en estado comprimido (borde, relleno y fondo de estrellas y barra de clasificación).
  • Separación de tamaño personalizable entre estrellas.
  • Ancho de la frontera personalizable de estrellas.
  • Radio de esquina de estrellas personalizables.
  • Permite establecer OnRatingBarChangeListener
  • El llenado de estrellas se puede configurar para que comience de izquierda a derecha o de derecha a izquierda (soporte de idioma RTL).
  • AnimationBuilder se integra en la vista para establecer la clasificación programáticamente con animación.

Aquí hay una vista previa de esto.

En tu caso, solo tendrías 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. Entonces en tu build.gradle archivo solo agregue a sus dependencias:

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


3
2017-11-22 03:30



Tienes una próxima propiedad.

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 dibujable. Por lo tanto, puede cambiar star y star_empty en un editor gráfico y agregar un spassing si lo necesita.


4
2017-07-11 12:34



Solo use el ícono personalizado y use el estilo, me refiero a Photoshop como quiera que se vea y reemplace con el ícono de estilo de calificación del sistema.


1
2018-06-14 07:04



Creo que tendrías que tomar una copia del archivo system star png y agregar manualmente el relleno que deseas con un photoshop / gimp / algún otro editor.


0
2018-06-18 23:29



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 la estrella ratin Hice que las imágenes estelares tengan espacio extra (relleno) en el lado derecho que dio como resultado un espacio entre las estrellas


0
2017-07-04 14:50