2010-02-22 5 views
2

J'essaie d'obtenir un dialogue personnalisé avec un fond transparent faire de cette façon:Transparent dialogue Alignement

 
this.getWindow().setBackgroundDrawableResource(R.drawable.transparent); 

(où « R.drawable.transparent » est une référence à la couleur « # 00000000 »)

Le problème étrange sur ceci est que je ne peux pas aligner ma fenêtre de dialogue. Il est toujours aligné à gauche, même si je implicitement mis la gravité de la fenêtre à l'aide:

 
this.getWindow().setGravity(Gravity.CENTER); 

Et si je viens de commenter la ligne qui définit l'arrière-plan transparent, l'alignement fonctionne très bien.

Toute aide serait grandement appréciée!

Merci.

Répondre

1

Vous devez définir le remplissage dans la fenêtre de dialogue.

+0

Je ne veux pas mettre rembourrages ou des marges, je je veux juste centrer la fenêtre. Gardez à l'esprit que j'aurais besoin d'un rembourrage relatif/marge en fonction de la largeur de l'écran et de la hauteur et ce serait une solution laide :(Y a-t-il un problème avec l'arrière-plan transparent? # 01000000 "(juste incrémenté l'opacité en 1) ça marche bien Android bug?: S – feragusper

+0

Donc j'ai eu le même problème que vous avez maintenant, et j'ai fait ce qui suit: android: layout_margin =" 20dip "et il l'a corrigé Notez que j'utilise des pixels indépendants du périphérique, de sorte que la marge reste la même visuellement sur différentes résolutions d'écran. –

2

Dans le fichier strings.xml, ajouter ce qui suit:

<resources> 
<color name="transparent">#00000000</color> 
</resources> 

Dans le fichier .java, ajoutez ce qui suit:

.setBackgroundColor(getResources().getColor(R.color.transparent));