FrameLayout Breite/Höhe ermitteln

  • Antworten:6
  • Bentwortet
n00n
  • Forum-Beiträge: 19

12.02.2014, 09:55:01 via Website

Guten Morgen,

arbeite mich gerade in die Android Entwicklung ein und habe das Galileo Buch "Android Apps Entwickleln für Einsteiger" welches ich täglich ein Stück abarbeite.

Nun komme ich mit dem Beispielcode auf Seite 174 zu einem Problem das ich nicht lösen kann:

Mein Beispiel stürtzt ab weil ich die Eigenschaften eines FrameLayout nicht auslesen kann.

Ausgelesen mit:
1ViewGroup spielbereich = (ViewGroup)findViewById(R.id.spielbereich);
2 int breite = spielbereich.getWidth();
3 int hoehe = spielbereich.getHeight();
4 int muecke_breite = (int)Math.round(masstab*50);
5 int muecke_hoehe = (int)Math.round(masstab*42);
6
7
8 //TODO DML #0000# Fehler, breite und höhe sind immer 0
9 Log.d(this.debugName, "spielbereich breite: " + breite);
10 Log.d(this.debugName, "muecke breite: " + muecke_breite);
11 Log.d(this.debugName, "spielbereich hoehe: " + hoehe);
12 Log.d(this.debugName, "muecke hoehe: " + muecke_hoehe);
13
14// in dieser Zeile steigt mein Debugger aus, weil breite = 0.
15 int links = ZufallsGenerator.nextInt( breite-muecke_breite);

und das ist das FrameLayout:
1<FrameLayout
2 android:id="@+id/spielbereich"
3 android:layout_width="match_parent"
4 android:layout_height="0dip"
5 android:layout_gravity="top"
6 android:layout_weight="1" >
7 </FrameLayout>

Natürlich weis ich das ich eine Exception werfen kann um auf den Fehler zu reagieren. Aber das ändert mein Problem nicht, das ich das Framelayout auslesen möchte.

Irgendeine Idee wie ich das löse?

cu s00n
de n00n

Antworten
n00n
  • Forum-Beiträge: 19

12.02.2014, 18:01:57 via Website

impjor
Warum benutz du denn ViewGroup und nicht FrameLayout? Wurde das Layout schon auf den Bildschirm gezeichnet?

Weils so im Buch steht.. und mit
1FrameLayout spielbereich = (FrameLayout)findViewById(R.id.spielbereich);
hatt ich es schon versucht, geht auch nicht.

Keine Ahnung, ob das schon "auf dem Bildschirm gezeichnet" wurde. Kann ich das irgendwie abfragen?
Sorry, bin halt noch neu in Java und Android, komme mehr aus C# und PHP

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

12.02.2014, 21:04:09 via App

Da muss ich dir sagen dass Java mit C# viel gemeinsam hat. Gut die Syntax ist nen bisschen anders aber dank der Docs findet man das auch.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
n00n
  • Forum-Beiträge: 19

12.02.2014, 21:06:35 via Website

Anmerkung: C# seit 2009 nimmer gemacht. *schäm* seitdem nur PHP und PHPunit

Antworten
n00n
  • Forum-Beiträge: 19

13.02.2014, 17:20:38 via Website

Keine Ahnung .. find den Fehler nicht. Was für ein tolles Buch. Das ganze Buch basiert auf dem gleichen Code. Am Ende hat man ein Spiel programmiert, .... ausser der Autor hat einen Fehler eingebaut. Also werde ich ein anderes Buch suchen müssen.

Das Internet ist voll mit Informationen das der Code im Buch fehlerhaft ist.
Wer kann mir Bücher empfehlen? Welche wo keine Spiele entwickelt werden und ein Kapitel nicht auf dem Code des vorherigen aufbaut?

Antworten