Android - Benutzerdefinierte AlertDialog Hintergrundfarbe

8

Also ich sehe, dass wir Alertdialoge mit grauen und weißen Hintergrundfarben haben können.

Um zu erfahren, warum ich die themes.xml des sdk überprüft habe, wurde ich zu drawables geführt und da wurde mir klar, dass der alertdialog-Hintergrund nicht programmatisch, sondern über einige Bilder erfolgt. Und diese Bilder garantieren, dass es zwei graue (oder weiße wenn inverse Farbe) horizontale Zeilen oben (Titelbereich) und unten (knapp oberhalb des Schaltflächenbereichs) des Dialogs gibt, wenn wir mit LayoutInflater nur eine andere Hintergrundfarbe einstellen.

Also meine Frage ist, wie LayoutInflator nutzlos ist und rate ich muss Alertdialogunterklasse, was schlagen Sie vor, um einen AlertDialog mit einer anderen Hintergrundfarbe zu generieren? Was sollte ich außer Kraft setzen?

    
ahmet emrah 22.10.2010, 08:24
quelle

2 Antworten

17

Anstatt AlertDialog zu verwenden, benutzte ich einen Dialog. Um ein individuelles Aussehen zu erhalten:

1 - Erstellen Sie den Dialog und entfernen Sie den Titelbereich (andernfalls erhalten Sie oben einen leeren grauen Bereich):

%Vor%

2 - Entwerfen Sie ein Layout in XML und legen Sie den Inhalt des Dialogfelds fest:

%Vor%

3 - Wenn das Layout kein gerundetes Rechteck ist, schneidet es sich mit den abgerundeten Ecken des Dialogfelds. Entwerfen Sie das Layout also als gerundetes Rechteck:

in mydialog_layout.xml:

%Vor%

mydialog_shape.xml:

%Vor%

4 - Fügen Sie den Schaltflächen in Ihrer Aktivität Listener hinzu:

%Vor%

Das ist es.

    
ahmet emrah 02.11.2010, 12:12
quelle
0

Ich erinnere mich, dass nicht alle Android-Dialoge gleich erstellt wurden. Daher, wenn Sie nicht den Dialog verwenden möchten, der mit der Android-Version des Geräts geliefert wurde; Sie müssen einen komplett neuen Dialog von Grund auf programmieren.

Bearbeiten:

Ich denke, Sie müssen den onCreateDialog mit einer benutzerdefinierten Dialog-Builder-Klasse überschreiben. Wie ich schon sagte, ich habe es noch nie gemacht. Denken Sie daran, dass Sie den Dialog in XML definieren müssen, um den Android-MVC-Stil beizubehalten. Wenn ich es tun würde; Ich würde wahrscheinlich mit dem XML-Layout beginnen und dann eine benutzerdefinierte Dialogklasse mit den gleichen Methoden wie eine normale Dialog-Builder-Klasse programmieren. Tut mir leid, so vage zu sein, ich lerne Java und Android selbst noch.

    
Martinez 23.10.2010 06:26
quelle

Tags und Links