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.