style color change android android-progressbar

change - Cómo cambiar el color predeterminado del círculo ProgressDialog en Android



change color progress dialog android (10)

Estoy usando ProgressDialog para mostrar la barra de progreso

ProgressDialog progressDialog = new ProgressDialog(context); progressDialog.setCancelable(false); progressDialog.setMessage(message); progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressDialog.show();

Y viene así

Quiero cambiar el color verde del círculo a rojo. ¿hay alguna manera?

Lo intenté

.getIndeterminateDrawable().setColorFilter(0xFFFFFFFF, android.graphics.PorterDuff.Mode.MULTIPLY);

Pero no funciona.


Añadir Style.xml

<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="colorAccent">@color/colorPrimary</item> </style>

establecer estilo para avanzar el diálogo

pdialog = new ProgressDialog(context, R.style.MyAlertDialogStyle);


En el tema de su aplicación , cambie colorAccent.

<style name="AppTheme.Bash" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">Add your color here</item> <item name="android:windowBackground">@color/gray</item> </style>

Usa el color que quieras


En style.xml crear estilo para el cuadro de diálogo:

<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="colorAccent">@color/black</item> <item name="android:textColorPrimary">@color/white</item> <item name="android:background">@color/grey_dialog_box</item> </style>

En este "android:textColorPrimary" debe definir el color que desea mostrar y, en el código Java, definir el estilo de ProgressDialog como:

ProgressDialog progressDialog = new ProgressDialog(context,R.style.AppCompatAlertDialogStyle);

MÁS: http://androidprogressdialogcustomcolor.blogspot.in/


Esta no es una solución perfecta, pero puede ayudar.

También puedes ver mi comentario anterior. https://.com/a/39687893/2598453

final ProgressDialog progress = new ProgressDialog(this); progress.setMessage(getString(R.string.progress_message)); progress.setIndeterminate(true); progress.setCancelable(false); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { Drawable drawable = new ProgressBar(this).getIndeterminateDrawable().mutate(); drawable.setColorFilter(ContextCompat.getColor(this, R.color.colorAccent), PorterDuff.Mode.SRC_IN); progress.setIndeterminateDrawable(drawable); } progress.show();


La solución perfecta y simple para la barra de progreso de color personalizada.

public class CustomProgressBar extends ProgressBar{ public CustomProgressBar(Context context) { super(context); this.setIndeterminate(true); this.getIndeterminateDrawable().setColorFilter(getResources().getColor(R.color.app_blue), PorterDuff.Mode.MULTIPLY); } public CustomProgressBar(Context context, AttributeSet attrs) { super(context, attrs); this.getIndeterminateDrawable().setColorFilter(getResources().getColor(R.color.app_blue), PorterDuff.Mode.MULTIPLY); } public CustomProgressBar(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } }

y utilízalo en tu diseño.

<RelativeLayout android:id="@+id/loadingPanel" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:visibility="gone"> <com.mayproject.views.CustomProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout>


Obtenga el recurso del recurso de Android que utiliza ProgressDialog.

final ProgressDialog progress = new ProgressDialog(context); progress.setTitle("Loading"); progress.setMessage("Wait while loading..."); progress.setCancelable(false); // disable dismiss by tapping outside of the dialog progress.show(); ProgressBar progressbar=(ProgressBar)progress.findViewById(android.R.id.progress); progressbar.getIndeterminateDrawable().setColorFilter(Color.parseColor("#C60000"), android.graphics.PorterDuff.Mode.SRC_IN);


Prueba esto:

Ejemplo de configuración de color a rojo:

ProgressBar spinner = new android.widget.ProgressBar( context, null, android.R.attr.progressBarStyle); spinner.getIndeterminateDrawable().setColorFilter(0xFFFF0000, android.graphics.PorterDuff.Mode.MULTIPLY);


Si desea definir el color ad-hoc, sin necesidad de herencia o XML dedicado, puede usar algo como esto:

/** Styles a ProgressDialog to use a themed Spinner. */ public void setStyledProgressDialog(final Context pContext, final ProgressDialog pProgressDialog, final int pColorResourceId) { // Allocate a new ProgressBar. final ProgressBar lProgressBar = new android.widget.ProgressBar(pContext, null, android.R.attr.progressBarStyle); // Configure the IndeterminateDrawable. lProgressBar.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(pContext, pColorResourceId), android.graphics.PorterDuff.Mode.MULTIPLY); // Assign the ProgressBar to the ProgressDialog. pProgressDialog.setIndeterminateDrawable(lProgressBar.getIndeterminateDrawable()); }


Si ya utiliza la biblioteca de diálogos de material ( https://github.com/afollestad/material-dialogs#indeterminate-progress-dialogs ), la solución más sencilla podría ser utilizar el diálogo de progreso de esa biblioteca. El círculo se coloreará automáticamente con el color primario:

MaterialDialog dialog = new MaterialDialog.Builder(context) .content(R.string.loading) .progress(true, 0) .show();


Cree un diseño para el cuadro de diálogo de progreso como se llama custom_progress_dialog.xml en la carpeta de diseño.

<?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0" android:toDegrees="360"> <shape android:shape="ring" android:innerRadiusRatio="3" android:thicknessRatio="8" android:useLevel="false"> <size android:width="56dip" android:height="56dip" /> <gradient android:type="sweep" android:useLevel="false" android:startColor="@android:color/transparent" android:endColor="#1e9dff" android:angle="0" /> </shape> </rotate>

asegúrese de que indeterminate = true y android:indeterminateDrawable="@drawable/custom_progress_background" En el diseño de la actividad donde desea utilizar el cargador

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/loadingPanel" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <ProgressBar android:layout_width="wrap_content" style="?android:attr/progressBarStyleLarge" android:layout_height="wrap_content" android:indeterminateDrawable="@drawable/custom_progress_dialog" android:indeterminate="true" /> </RelativeLayout>