web-dev-qa-db-fra.com

Utilisation de ProgressDialog android personnalisé

J'utilise custom ProgressDialog dans mon application. Je peux le personnaliser mais je souhaite également supprimer la bordure supérieure ou la fenêtre de progressDialog. Dans styles.xml, je définit customDialog comme

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

Pour supprimer la fenêtre parente, je règle windowBackground sur null et windowFrame sur null mais cela ne fonctionne pas pour moi . Actuellement, ma boîte de dialogue de progression personnalisée ressemble à celle de l'image ci-dessous.enter image description here

J'utilise ce code pour définir le style 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();
}

Alors, aidez-moi en ce qui concerne ce problème, toute aide devrait être vraiment appréciée.

16
waqas satti

Cette réponse n'aborde pas le problème énoncé dans la question, mais lors de la recherche de la mise en œuvre d'un dialogue de progression personnalisé, il s'agit du seul lien pointant vers un responsable. Cela dit, j’ai trouvé un dialogue de progression personnalisé, agréable et facile à utiliser, par un certain Maksym Dybarskyi sur ce link .

Tout le crédit revient au créateur, pas à moi. Suis juste un partage

Tout ce que vous avez à faire est d’ajouter ceci à vos dépendances:

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

Et puis le style personnalisé:

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

Enfin, dans votre code, procédez comme suit:

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();
 } 

Résultat:

 enter image description here

Les points jaunes se déplacent de gauche à droite et vous pouvez modifier le nombre de points dans les styles

23
ojonugwa ochalifu

Je sais que je suis assez en retard pour répondre mais je vais répondre de toute façon, 

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));
15
Khawar

Il suffit de vérifier l’utilisation du nom de l’activité dans la boîte de dialogue Constructeur de la progression,

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

Ajouter ceci sur le style 

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

<item name="Android:windowBackground">@Android:color/transparent</item>
1
ajmal

Ajoutez ceci à votre CustomDialog dans styles.xml:

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

Et cette 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>
1
Alaa M.
<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>

Cela a fait le travail pour moi.

0
Tsar