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í.