studio stars personalizar estrellas custom color bar android

stars - ratingbar android color



Android RatingBar mostrando más de 5 estrellas (4)

Intente establecer el valor máximo para su RatingBar como abajo

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/active_bg" > <RatingBar android:id="@+id/rating" android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/ratingBarStyleSmall" android:numStars="5" android:stepSize="0.1" android:isIndicator="true" /> </RelativeLayout>

cree un archivo xml en su archivo de diseño y establezca esto como el contenido

Cambia tu función showDialog como esta

LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.***your_xml_name***)); editor.setView(layout); editor.show();

Quiero mostrar una barra de calificación a través de un cuadro de diálogo de alerta en mi aplicación de Android. El problema al que me estoy enfrentando es que, dependiendo del ancho de la pantalla, la barra de calificación muestra más de 5 estrellas (hasta 10) en modo horizontal y la función setNumStars () no tiene ningún efecto. Ya hay publicaciones que tratan este problema, pero tratan con una barra de calificación cuyo laout se define estáticamente mientras lo estoy creando dinámicamente. ¿Cómo resolver este problema?

public class MainActivity extends Activity { private Button launchButton; //Rating dialog private AlertDialog.Builder rater; private RatingBar ratingBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); launchButton =(Button)findViewById(R.id.ratingButton); launchButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //Here the alert dialog will be launched showRatingDialog(); } }); //Setting up rating dialog rater = new AlertDialog.Builder(this); rater.setTitle("This is the rating dialog"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void showRatingDialog() { ratingBar = (RatingBar)findViewById(R.id.ratingStars); rater.setNegativeButton("Abbrechen", null); rater.setView(ratingBar); rater.show(); } }

He intentado usar un diseño estático para la barra de clasificación, pero cuando hago esto y trato de mostrar la barra de clasificación mediante un cuadro de diálogo de alerta, no se muestran las estrellas. Aquí está el archivo de diseño para la barra de calificación:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <RatingBar android:id="@+id/ratingStars" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="5" android:stepSize="1" /> </LinearLayout>


configurar el ancho de RatingBar para "envolver contenido" resuelve todo el problema. Según la documentación:

Establece el número de estrellas para mostrar. Para que estos se muestren correctamente, se recomienda que el ancho del diseño de este widget sea contenido de envoltura.


establece el android:numStars="5" y android:layout_width="wrap_content"


mantener el padre de la barra de calificación como diseño lineal y no guardar nada más en ese diseño lineal, que funcionó para mí

This blog muestra la imagen clara de la solución.