He agregado una RatingBar en un diseño:
<RatingBar
android:id="@+id/ratingbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:stepSize="1.0"
/>
Pero el estilo predeterminado para la barra de calificación es demasiado grande.
Intenté cambiarlo agregando el estilo de Android:style="?android:attr/ratingBarStyleSmall"
Pero el resultado es demasiado pequeño y es imposible establecer una tasa con esta propiedad.
¿Cómo podría hacerlo?
fuente
Cómo pegar el código dado aquí ...
Paso 1. Necesitas tus propias estrellas de calificación en
res/drawable
...Paso-2
res/drawable
Necesitasratingstars.xml
lo siguiente ...Paso-3
res/values
Necesitasstyles.xml
lo siguiente ...Paso-4 en su diseño ...
fuente
Solo usa:
Cambie el factor de escala según su necesidad.
Para escalar sin crear un relleno a la izquierda, también agregue
fuente
codeandroid:scaleX="0.75" android:scaleY="0.75" android:layout_marginRight="-25dp"
android:layout_height="40dp"
No es necesario agregar un oyente al
?android:attr/ratingBarStyleSmall
. Simplemente agregueandroid:isIndicator=false
y capturará eventos de clic, por ejemplofuente
el pequeño implementado por el sistema operativo
fuente
aplica esto.
fuente
Encontré una solución más fácil de lo que creo dada por las anteriores y más fácil que lanzar la suya. Simplemente creé una pequeña barra de calificación, luego le agregué un onTouchListener. A partir de ahí, calculo el ancho del clic y determino el número de estrellas a partir de eso. Después de haber usado esto varias veces, la única peculiaridad que he encontrado es que el dibujo de una pequeña barra de calificación no siempre aparece en una tabla a menos que lo incluya en un diseño lineal (se ve directamente en el editor, pero no en el dispositivo) . De todos modos, en mi diseño:
y dentro de mi actividad:
Espero que esto ayude a alguien más. Definitivamente más fácil que dibujar el propio (aunque descubrí que eso también funciona, pero solo quería un uso fácil de las estrellas).
fuente
ratingBarStyleSmall
estrellas son realmente demasiado pequeñas para ser útiles. Creo que tendré que rodar el mío para obtener estrellas de tamaño intermedio.fuente
// agregue estas líneas para la barra de calificación pequeña
fuente
aunque la respuesta de Farry funciona, para los dispositivos Samsung, RatingBar tomó un color azul aleatorio en lugar del definido por mí. Así que usa
en lugar.
Código completo de cómo usarlo:
fuente
La mejor respuesta para una pequeña barra de calificación
fuente
Use este código
fuente
fuente
La mejor respuesta que obtuve
usuario como este
Aumentar / disminuir tamaños usando el valor scaleX y scaleY
fuente
use el siguiente código para una pequeña barra de calificación con evento onTouch
fuente
Después de mucha investigación, encontré que la mejor solución para reducir el tamaño de las barras de calificación personalizadas es obtener el tamaño del progreso en ciertos tamaños, como se menciona a continuación:
xxhdpi - 48 * 48 px
xhdpi - 36 * 36 px
HDPI - 24 * 24 px
Y con estilo coloque la altura mínima y máxima como 16 dp para todas las resoluciones.
Avíseme si esto no le ayuda a obtener las mejores barras de calificación de tamaño pequeño, ya que estos tamaños me parecieron muy compatibles y equivalentes al atributo de estilo ratingbar.small.
fuente
Me está funcionando en la barra de calificación xml style = "? Android: attr / ratingBarStyleSmall" agregue this.it funcionará.
fuente
Resuelvo este problema lo siguiente: style = "? Android: attr / ratingBarStyleSmall"
fuente