Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Button in RelativeLayout Container mittig zentrieren (kein XML!)?

Das Thema "Button in RelativeLayout Container mittig zentrieren (kein XML!)?" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 05.08.2009, 00:34   #1 (permalink)
Neuer Benutzer
 
Benutzerbild von flyMASTER

Registriert seit: 04.08.2009
Beiträge: 9
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Frage Button in RelativeLayout Container mittig zentrieren (kein XML!)?

Guten Abend euch allen,

ich habe erst vir kurzem damit begonnen für Android zu programmieren und stolpere deshalb noch über das ein oder andere Verständnisproblem.


Ich will meine GUI zum Teil nicht auf Basis der XML Files erstellen sondern zur Laufzeit generieren. Als Container habe ich mir ein „RelativeLayout“ ausgesucht, da ich damit im XML Layout Editor die besten Erfahrungen gesammelt habe.
Zu diesem RelativeLayout Container wollte ich dann eine je nach Anwendungssituation unterschiedliche Anzahl an Buttons (an unterschiedlichen Stellen) im RelativeLayout Container/View positionieren, aber mir will das nicht so recht gelingen...
Die XML Parameter android:layout_centerVertical und android:layout_centerHorizontal würde ich gerne setzen bzw. eine vergleichbare Funktion nutzen, aber ich finde einfach keine?!


Ähnliche Probleme habe bei der Positionierung eines Objekts an einer bestimmten XY Koordinate, sowie das Benutzen der relativen Breite des Containers (in diesem Fall besitzt er die absolut mögliche Breite des Displays) um z.B. einen Button über das gesamte Display zu strecken.


Sind diese Dinge überhaupt möglich und wenn ja, wie? Wo liegt mein Denkfehler? Wenn man im Internet sucht findet man immer nur Lösungen über den XML weg. Der ist für mich aber ausgeschlossen, da ich vor dem starten des Programms noch nicht weiß wann und wie viele z.B. Buttons wo auf dem Display zu positionieren sind.


Ich freue mich über jede Hilfe
flyMASTER ist offline   Mit Zitat antworten
Alt 05.08.2009, 04:15   #2 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 03.07.2009
Beiträge: 89
Abgegebene Danke: 0
Erhielt 16 Danke für 3 Beiträge
Standard AW: Button in RelativeLayout Container mittig zentrieren (kein XML!)?

Code:
RelativeLayout. LayoutParams p = relativeLayoutView.generateDefaultLayoutParams();
// oder komplett selbst: RelativeLayout. LayoutParams = new RelativeLayout.Params();

p.width = RelativeLayout.LayoutParams.WRAP_CONTENT;
p.gravity = ...
childView.setLayoutParams(p);
Jedes Layout hat eine eigene LayoutParams Klasse, und alle Kind-Views verwenden jeweils die entsprechende LayoutParams des Eltern-Views.
__________________
A World Of Photo - Casual Social Geo Multiplayer Game.
Faszinierende Bilder von Flickr - als Widget.
Autostarts managen.

Geändert von miracle2k (05.08.2009 um 04:18 Uhr)
miracle2k ist offline   Mit Zitat antworten
Alt 05.08.2009, 09:48   #3 (permalink)
Neuer Benutzer
 
Benutzerbild von flyMASTER

Registriert seit: 04.08.2009
Beiträge: 9
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Problem gelöst / Frage beantwortet AW: Button in RelativeLayout Container mittig zentrieren (kein XML!)?

Vielen Dank für den Hinweis -> habe nun auch eine Lösung gefunden.

Code:
//"this" ist eine Klasse die von der Klasse RelativeLayout erbt

this.startButton = new Button(this.getContext());
this.startButton.setText("Text");

RelativeLayout.LayoutParams tmpLp = (LayoutParams) this.generateDefaultLayoutParams();
 tmpLp.addRule(RelativeLayout.CENTER_IN_PARENT);
 tmpLp.width = RelativeLayout.LayoutParams.FILL_PARENT;
        
 this.startButton.setLayoutParams(tmpLp);
Was mich etwas irritiert hat ist der Cast bei " (LayoutParams) this.generateDefaultLayoutParams();"... geht das auch eleganter?
flyMASTER ist offline   Mit Zitat antworten
Alt 05.08.2009, 11:08   #4 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 03.07.2009
Beiträge: 89
Abgegebene Danke: 0
Erhielt 16 Danke für 3 Beiträge
Standard AW: Button in RelativeLayout Container mittig zentrieren (kein XML!)?

Zitat:
Zitat von flyMASTER Beitrag anzeigen
Was mich etwas irritiert hat ist der Cast bei " (LayoutParams) this.generateDefaultLayoutParams();"... geht das auch eleganter?
Seltsam - anscheinend ist der Rückgabewert von LinearLayout.generateDefaultLayoutParams() als ViewGroup.LayoutParams definiert.

Komischerweise mache ich das selbe mit FrameLayout, wo es ohne Cast klappt - dort wird nämlich direkt auch ein FrameLayout.LayoutParams zurückgegeben. Vielleicht wurde da was übersehen.
__________________
A World Of Photo - Casual Social Geo Multiplayer Game.
Faszinierende Bilder von Flickr - als Widget.
Autostarts managen.
miracle2k ist offline   Mit Zitat antworten
Alt 05.08.2009, 11:41   #5 (permalink)
Neuer Benutzer
 
Benutzerbild von flyMASTER

Registriert seit: 04.08.2009
Beiträge: 9
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Frage AW: Button in RelativeLayout Container mittig zentrieren (kein XML!)?

Hmm naja, so funktionierts ja erstmal.

Ich hänge aber schon am nächsten Problem:

Ich will ein Array von Strings an einen ArrayAdapter übergeben und diesen ArrayAdapter an einen Spinner anbinden.


PHP-Code:
this.memorySet = new Spinner(contentView.getContext());
                
String[] = {"A","A","A"};
        
ArrayAdapter<Stringaa = new ArrayAdapter<String>(this.getContext(),this.memorySet.getId(),s);

this.memorySet.setAdapter(aa); 
Leider stürzt der Emulator beim ausführe ab...

Ich vermute das ich noch aa.setDropDownViewResource(resource) ausführen muss, aber ich habe keine id für die resource denn der Spinner und auch das String[] werden zur Laufzeit generiert und existieren in keinem XML File...

Generell: Kann man passende XML Datensätze zur Laufzeit generieren? Irgendwie muss das doch auch ohne gehen, wie soll man sonst dynamische Inhalte programmiere deren GUI Elemente nicht vorraussagbar sind?
flyMASTER ist offline   Mit Zitat antworten
Alt 05.08.2009, 14:03   #6 (permalink)
Neuer Benutzer
 
Benutzerbild von flyMASTER

Registriert seit: 04.08.2009
Beiträge: 9
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Problem gelöst / Frage beantwortet AW: Button in RelativeLayout Container mittig zentrieren (kein XML!)?

Okay, mein Posting war wohl etwas vorschnell. Habe eine Lösung gefunden auch wenn mich das Konzept immernoch etwas irritiert:

PHP-Code:
ArrayAdapter<Stringaa = new ArrayAdapter<String>(this.getContext(),R.layout.simple_spinner_item,s);
        
this.memorySetSpinner.setAdapter(aa); 
flyMASTER ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Kein Internet, Kein SMS Versand p0ppi Samsung Galaxy (I7500) Forum 12 11.07.2009 20:39
Bild zentrieren in xml Datei Tai Android App Entwicklung 8 09.06.2009 13:13
.com Button in .de umwandeln dermattn HTC Magic Forum 0 19.05.2009 17:55
Wlan oder GPS Button auf der startseite erstellen purepoison T-Mobile G1 Forum 4 13.04.2009 01:13
Langer Klick auf Button Manfred Android App Entwicklung 0 18.02.2009 11:24




Du liest gerade: "Button in RelativeLayout Container mittig zentrieren (kein XML!)?" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.