2012-01-12 12 views
6

Tworzę swoją aplikację dla wszystkich tabletów 10.1 i teraz próbuję tego na karcie Samsung galaxy. Zrobiłem wszystkie części tego, ale okno alertu jest zbyt małe w odniesieniu do rozmiaru tabletu. Mam również utworzone niestandardowe okno dialogowe, ale nie wygląda dobrze. Powiedz mi, czy mogę zmienić rozmiar domyślnego okna dialogowego alertu, jeśli tak, to w jaki sposób.Okno dialogowe alarmu lub Custom Alert Dialog

LUB

jak tworzyć niestandardowe okno alertu, który wygląda jak domyślnym oknie alertu.

Dzięki.

Odpowiedz

12

Proszę odnieść this one

Według programistów platformy Android Dianne Hackborn w this dyskusji grupowej postu, Dialogi set top szerokość układu poziom ich okna i wysokość do WRAP_CONTENT. Aby powiększyć okno dialogowe, możesz ustawić te parametry na FILL_PARENT.

kod Demo:

AlertDialog.Builder adb = new AlertDialog.Builder(this); 
Dialog d = adb.setView(new View(this)).create(); 
// (That new View is just there to have something inside the dialog that can grow big enough to cover the whole screen.) 

WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); 
lp.copyFrom(d.getWindow().getAttributes()); 
lp.width = WindowManager.LayoutParams.MATCH_PARENT; 
lp.height = WindowManager.LayoutParams.MATCH_PARENT; 
d.show(); 
d.getWindow().setAttributes(lp); 

Zauważ, że atrybuty są ustawione po dialogowe pokazane. System jest skomplikowany, gdy są ustawione. (Domyślam się, że mechanizm układu musi je ustawić przy pierwszym wyświetleniu okna dialogowego lub coś podobnego).

Byłoby lepiej zrobić to poprzez rozszerzenie Theme.Dialog, wtedy nie musiałbyś grać w grę zgadującą o tym, kiedy wywołać setAttributes. (Chociaż trochę więcej pracy wymaga, aby okno dialogowe automatycznie przyjmowało odpowiednią jasną lub ciemną kompozycję lub motyw Honeycomb Holo.Można to zrobić zgodnie z http://developer.android.com/guide/topics/ui/themes.html#SelectATheme)