una ropa resaltar programa para online modificar imagen fotos colores color cambiar booth autos app aplicaciones aplicacion android ratingbar

ropa - Android: cambia el color de la barra de calificación a dorado



programa para cambiar el color de una imagen online (8)

Quiero cambiar el color de la barra de calificación a dorado.
No quiero personalizar las estrellas, solo quiero cambiar el color para API 16 o superior
He intentado las siguientes soluciones, pero ninguna de ellas funcionó para mí.

1. RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar); LayerDrawable stars = (LayerDrawable) ratingBar.getProgressDrawable(); stars.getDrawable(2).setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_ATOP); 2. android:progressDrawable="@color/golden" in XML


Como mencionaste, quieres cambiar el color de la estrella sin usar el dibujo. Puedes hacerlo por unas pocas líneas de código como abajo.

RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar); Drawable drawable = ratingBar.getProgressDrawable(); drawable.setColorFilter(Color.parseColor("#0064A8"),PorterDuff.Mode.SRC_ATOP);


Esta opción ahora está incluida en la biblioteca AppCompat. La versión AppCompat de RatingBar se utiliza automáticamente.

http://developer.android.com/reference/android/support/v7/widget/AppCompatRatingBar.html

Ejemplo (desde mi propia aplicación):

<RatingBar android:id="@+id/rating" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="5" android:stepSize="1" android:theme="@style/RatingBar"/>

Con tema:

<style name="RatingBar" parent="Theme.AppCompat"> <item name="colorControlNormal">@color/duskYellow</item> <item name="colorControlActivated">@color/lightGrey</item> </style>


Mi caso de uso fue mostrar diferentes colores para diferentes clasificaciones. Por ejemplo :

1- Rojo
2- naranja
3- Amarillo
4- Verde claro
5- verde oscuro

Solución:

ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { @Override public void onRatingChanged(final RatingBar ratingBar, final float rating, final boolean fromUser) { setCurrentRating(rating); } });

Luego en tu método setCurrentRating() :

private void setCurrentRating(float rating) { LayerDrawable drawable = (LayerDrawable)rateOverall.getProgressDrawable(); if(mContext!=null) { switch (Math.round(rating)) { case 1: setRatingStarColor(drawable.getDrawable(2), ContextCompat.getColor(mContext, R.color.dark_red)); break; case 2: setRatingStarColor(drawable.getDrawable(2), ContextCompat.getColor(mContext, R.color.light_orange)); break; case 3: setRatingStarColor(drawable.getDrawable(2), ContextCompat.getColor(mContext, R.color.light_yellow)); break; case 4: setRatingStarColor(drawable.getDrawable(2), ContextCompat.getColor(mContext, R.color.light_green_review)); break; case 5: setRatingStarColor(drawable.getDrawable(2), ContextCompat.getColor(mContext, R.color.dark_green)); break; } setRatingStarColor(drawable.getDrawable(1), ContextCompat.getColor(mContext, R.color.transparent)); setRatingStarColor(drawable.getDrawable(0), ContextCompat.getColor(mContext, R.color.light_grey_payment)); } }

Luego en tu método setRatingStarColor() :

private void setRatingStarColor(Drawable drawable, @ColorInt int color) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { DrawableCompat.setTint(drawable, color); } else { drawable.setColorFilter(color, PorterDuff.Mode.SRC_IN); } }

Gracias a esta answer que me ayudó a resolver esto. Espero que ayude a alguien!


Mi tarea fue cambiar el color de la barra de clasificación al color primario de la aplicación para Android > = 14 SDK . He resuelto este problema en código y en archivo xml.

mRatingBar = (RatingBar)view.findViewById(R.id.ratingBar); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { try { Drawable progressDrawable = mRatingBar.getProgressDrawable(); if (progressDrawable != null) { DrawableCompat.setTint(progressDrawable, ContextCompat.getColor(getContext(), R.color.colorPrimary)); } } catch (Exception e) { e.printStackTrace(); } }

Y en archivo xml

<RatingBar android:id="@+id/ratingBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:backgroundTint="@color/colorPrimary" android:numStars="5" android:progressTint="@color/colorPrimary" android:rating="0" android:secondaryProgressTint="@android:color/transparent" android:stepSize="1" />


Simplemente agregue esta línea a xml (API 21 y superior)

android:progressTint="@color/color"


Solución simple, use AppCompatRatingBar y use el siguiente código

ratingbar.setProgressTintList(ColorStateList.valueOf(ContextCompat.getColor(context, R.color.colorAccent)));


prueba esto,

Necesitas imágenes de 3 estrellas (red_star_full.png, red_star_half.png y red_star_empty.png) y un archivo xml. Si quieres una estrella dorada, usa la imagen de una estrella dorada. esto es para la estrella roja.

puede poner ratingbar_color.xml en res / drawable.

<?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/red_star_empty" /> <item android:id="@android:id/secondaryProgress" android:drawable="@drawable/red_star_half" /> <item android:id="@android:id/progress" android:drawable="@drawable/red_star_full" /> </layer-list>

y en la definición de la barra de calificación uso siguiente.

<RatingBar android:progressDrawable="@drawable/ratingbar_red/>


RatingBar ratingreview; ratingreview=(RatingBar)v.findViewById(R.id.ratingreview); ratingreview.setRating(Float.parseFloat(objrating)); Drawable drawable = ratingreview.getProgressDrawable(); drawable.setColorFilter(Color.parseColor("#6A9A28"), PorterDuff.Mode.SRC_ATOP);