studio progressbar custom alternative android progressdialog

progressbar - progressdialog android



El uso de Android ProgressDialog personalizado (7)

Estoy usando ProgressDialog personalizado en mi aplicación, puedo hacerlo personalizado pero también quiero eliminar el borde superior o la ventana de progressDialog . En styles.xml defino customDialog como

<style name="AppTheme" parent="android:Theme.Light" /> <style name="CustomDialog" parent="@android:style/Theme.Dialog"> <item name="android:background">#7BC047</item> <item name="android:textColor">#FFFFFF</item> <item name="android:windowBackground">@null</item> <item name="android:windowFrame">@null</item> </style>

Para eliminar la ventana principal, estoy configurando windowBackground en null y windowFrame en null pero no funcionó para mí. Actualmente, mi cuadro de diálogo de progreso personalizado se ve así en la imagen que se muestra a continuación.

Estoy usando este código para establecer el estilo de progressDialog .

private void showProgressDialog() { progressDialog = new ProgressDialog(this,R.style.CustomDialog); progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressDialog.setMessage("Logging in. Please wait."); progressDialog.show(); }

Entonces, ayúdenme con respecto a este problema, cualquier ayuda debería ser realmente apreciada.


Agrega esto en estilo

<item name="android:background">@android:color/transparent</item> <item name="android:windowBackground">@android:color/transparent</item>


Agregue esto a su CustomDialog en styles.xml :

<item name="android:alertDialogStyle">@style/CustomAlertDialogStyle</item>

Y este style :

<style name="CustomAlertDialogStyle" > <item name="android:bottomBright">@android:color/transparent</item> <item name="android:bottomDark">@android:color/transparent</item> <item name="android:bottomMedium">@android:color/transparent</item> <item name="android:centerBright">@android:color/transparent</item> <item name="android:centerDark">@android:color/transparent</item> <item name="android:centerMedium">@android:color/transparent</item> <item name="android:fullBright">@android:color/transparent</item> <item name="android:fullDark">@android:color/transparent</item> <item name="android:topBright">@android:color/transparent</item> <item name="android:topDark">@android:color/transparent</item> </style>


Esta respuesta no aborda el problema planteado en la pregunta, pero cuando se busca cómo implementar un diálogo de progreso personalizado, este es el único enlace que apunta a SO. Dicho esto, encontré un diálogo de progreso personalizado sencillo y fácil de Maksym Dybarskyi por parte de un tal Maksym Dybarskyi en este link .

Todo el crédito va al creador, no a mí. Solo lo estoy compartiendo.

Todo lo que necesita hacer es agregar esto a sus dependencias:

dependencies { ... compile ''com.github.d-max:spots-dialog:0.4@aar'' }

Y luego el estilo personalizado:

<style name="Custom" parent="android:Theme.DeviceDefault.Dialog"> <item name="DialogTitleAppearance">@android:style/TextAppearance.Medium</item> <item name="DialogTitleText">Please Wait</item> <item name="DialogSpotColor">@android:color/holo_orange_dark</item> <item name="DialogSpotCount">8</item> </style>

Finalmente, en tu código haz esto:

private AlertDialog progressDialog; progressDialog = new SpotsDialog(mContext, R.style.Custom); //Am using it in an AsyncTask. So in my onPreExecute, I do this: public void onPreExecute() { super.onPreExecute(); progressDialog.show(); ... } //dismiss in onPostExecute public void onPostExecute(){ progressDialog.dismiss(); }

Resultado:

Los puntos amarillos se mueven de izquierda a derecha y puede cambiar la cantidad de puntos en los estilos


Estoy usando ProgressDialog personalizado en mi aplicación. Para eso tenemos que seguir unos pasos que son los siguientes.

paso-1 Crear un diseño xml custom_progress.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:padding="@dimen/dp_size_10" android:layout_height="match_parent"> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:indeterminateTint="@color/colorPrimary" android:layout_centerInParent="true"/> </RelativeLayout>

paso-2 Crea un archivo java para este diálogo personalizado.

package com.example.customeprogress; import android.app.Dialog; import android.content.Context; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager; public class CustomProgressDialogue extends Dialog { public CustomProgressDialogue(Context context) { super(context); WindowManager.LayoutParams wlmp = getWindow().getAttributes(); wlmp.gravity = Gravity.CENTER_HORIZONTAL; getWindow().setAttributes(wlmp); setTitle(null); setCancelable(false); setOnCancelListener(null); View view = LayoutInflater.from(context).inflate( R.layout.custom_progress, null); setContentView(view); } }

paso-3 Crea un objeto de esta clase personalizada en tu clase de actividad java y lo inicializa como sigue, usa el objeto para show() o dismiss()

CustomProgressDialogue object = new CustomProgressDialogue (this);

y mostrar este diálogo utilizando.

object.show (); y lo despidió utilizando object.dismiss ();

Resultado de la salida. ver poner aquí


Sé que llego bastante tarde para responder, pero yo responderé de cualquier manera.

Dialog dialog = new Dialog(this); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.dialog_login); dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));


Solo verifica el uso del nombre de la actividad en tu constructor de diálogo de progreso,

progressDialog = new ProgressDialog(Activity.this,R.style.CustomDialog);


<style name="CustomDialog" parent="Theme.AppCompat.Light.Dialog"> <item name="android:background">#7BC047</item> <item name="android:textColor">#FFFFFF</item> <item name="android:windowBackground">@color/colorTransparent</item> </style>

Esto hizo el trabajo por mí.