Faire de boîte de dialogue d'alerte arrière-plan transparent
Je suis entrain de créer une boîte de dialogue d'alerte sur Android Jelly Beans OS. Tout fonctionne bien, mais ce que je veux, c'est qu'au lieu de l'arrière-plan noir de la boîte de dialogue d'alerte je veux un fond transparent. J'ai lu tellement de nombreux articles et de l'utilisateur en question sur stackoverflow mais aucun d'eux n'est de m'aider.
Voici mon code:
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.CustomAlertDialog);
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog1, int which) {
gActivityResult = REQUEST_PICK_CONTACT;
onResume();
return;
} });
builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog1, int which) {
return;
} });
View view = getLayoutInflater().inflate(R.layout.alert_dialog, null);
builder.setTitle(R.string.gender_age);
builder.setInverseBackgroundForced(false);
builder.setView (view);
dialog = builder.create ();
Voici mon CustomAlertDialog qui est défini dans l'res/values/styles.xml
<style name="CustomAlertDialog" parent="@android:style/Theme.Dialog">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowBackground">@color/transparent_color</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:gravity">left</item>
</style>
Ici est la color.xml
<resources>
<color name="transparent_color">#00000000</color>
</resources>
Mais il ne m'a pas aidé.
Ma question: Est-ce faisable? Si oui, pouvez-vous svp me guider dans la bonne direction?
Votre but est seulement de la rendre transparente? Ou existe-il d'autres raisons pour lesquelles vous avez choisi de générer un thème personnalisé? La transparence peut être introduite même sans le thème personnalisé.
J'en ai besoin seulement d'être transparent.
J'en ai besoin seulement d'être transparent.
OriginalL'auteur Raj | 2013-06-19
Vous devez vous connecter pour publier un commentaire.
Si vous n'avez pas lu Les attributs de Style personnalisé AlertDialog question, vous devriez aller de l'avant et de le lire. La réponse suggère d'utiliser des
Dialog
au lieu deAlert Dialog
. En outre, la lecture de Pourquoi ne LayoutInflater ignorer la layout_width et layout_height paramètres de mise en page que j'ai indiqué? problème avecLayoutInflater
pourrait éclaircir un peu plus. Espérons que cela aide. Essayez-le et laissez-moi savoir si cela fonctionne.ok. Ne convertissez pas
Dialog
. Sur votreAlertDialog
( PAS sur le générateur) à essayer:dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT))
.J'ai essayé avant, mais ça ne fonctionne pas. J'ai aussi essayé de dialogue.getWindow().setBackgroundDrawable(nouveau ColorDrawable(0)) qui n'a pas fonctionné. Je ne suis pas sûr pourquoi il devrait être une grande affaire pour donner à fond transparent de la boîte de dialogue d'alerte.
Vous avez raison. C'est peut-être la raison pour laquelle ils ont créé des boîtes de dialogue. En général, je utiliser
Dialogs
ou "une activité avec une boîte de Dialogue à thème", si j'ai besoin de quelque chose ike ce que vous souhaitez.OriginalL'auteur Shobhit Puri
J'ai trouvé cette façon qui est compatible avec AlertDialog.Générateur de rapports . À l'aide de la "Dump Afficher la Hiérarchie" dans l'Android "Périphériques" de l'onglet dans Eclipse, j'ai vu beaucoup de imbriquée FrameLayouts et il semblait que le fond était dans ces, vs la fenêtre.
Parcourant ces points de Vue et fond transparent sur chaque effectivement travaillées (ma vue personnalisée puis flotte au-dessus de la grisé application, sans cadres ou des arrière-plans, et il n'y a pas de changement dans la présentation). J'ai eu une vue personnalisée, donc parcouru vers le bas, mais traversant ViewGroups en place à partir de la Fenêtre devrait également fonctionner.
Je suis en utilisant un AlertDialog.Constructeur dans mon propre DialogFragment sous-classe avec une vue personnalisée.
OriginalL'auteur leorleor
J'ai dû faire quelque chose de similaire pour un de mes projets. Ce que j'ai fait était de créer une Activité juste pour le
AlertDialog
.Ne sais pas si c'est ce que vous êtes après, mais de les poster ici au cas où il vous aide à...
Activité
Et j'ai mis le fond en transparent dans la mise en page (alert_dialog.xml)...
Et a ajouté l'activité pour le Manifeste...
Ce fait le travail pour moi.
Espère que cette aide.
OriginalL'auteur neo108
appelez simplement,
juste avant
OriginalL'auteur mani