View skalieren -aber wie?

  • Antworten:6
  • Bentwortet
Martin A.
  • Forum-Beiträge: 19

19.09.2011, 17:06:02 via Website

Hallo,

ich bin blutiger Android-Anfänger und suche eine Möglichkeit, ein Layout zu skalieren, und zwar wie folgt:

Das/Die darzustellenden View(s) sollen die volle Bildschirmbreite einnehmen (soweit wäre das janoch kein Problem) und dabei exakt so breit wie hoch sein.

Soweit das, was ich versuche zu erreichen. Direkt in einer Layout.xml habe ich nicht einmal einen Ansatz für so etwas gefunden. Möglicherweise geht so etwas mit onMeasure(). Ich würde mich auch schon über ein Beispiel zu onMeasure() freuen, das wenige, was ich in der Dokumentetion dazu gefunden habe, hat mich offen gesagt auch nicht weitergebracht.

Ich würde mich über jeden Tipp sehr freuen. Mein Frustrationsgrad ist inzwischen nämlich schon ziemlich hoch

Also schon mal Danke vorab
Martin

— geändert am 19.09.2011, 17:07:00

Antworten
L3322
  • Forum-Beiträge: 467

19.09.2011, 17:44:28 via App

so wie ichs verstanden hab:
layout_width auf fill_parent und in deiner activity die breite auslesen und deine Höhe dann einfach genau auf die pixelanzahl setzen!

"Hard work beats talent, when talent fails to work hard"

Antworten
Martin A.
  • Forum-Beiträge: 19

19.09.2011, 20:48:20 via Website

L3322
[...] deine Höhe dann einfach genau auf die pixelanzahl setzen!

Hm, da stoße ich schon an meine Grenzen: So etwas wie view.setHeight() bietet mir Eclipse nicht an...

Martin

Antworten
Tobias Eckert
  • Forum-Beiträge: 155

21.09.2011, 21:56:52 via Website

Das funktioniert ohnehin nur im Portrait Modus. Da musst Du Deine App entsprechend einstellen dass sie nicht auf Landscape wechselt wenn das Gerät gedreht wird.

Ansonsten schau Dir mal das Beispiel hier an ob das eine Lösung für Dich ist.

Antworten
Martin A.
  • Forum-Beiträge: 19

22.09.2011, 15:44:15 via Website

Hallo Tobias,

zunächst mal vielen Dank! Das Beispiel hat mir einiges zum Ausprobieren aufgezeigt, das ich noch nicht kannte.

Bei einer Bildschirmauflösung wie die in dem genannten Beispiel entspricht das in der Tat dem, was ich suche: Quadratische Buttons, die außerdem auch noch alle gleich groß sind. Aber das ist eher Zufall, dass das mal passt. Bei einer anderen Auflösung ist Schluss mit quadratisch. Daher ist das noch keine Lösung für mich.

Vielleicht noch andere Ideen?

bis denn
Martin

Antworten
Ben Becker
  • Forum-Beiträge: 209

23.09.2011, 08:51:54 via Website

Du kannst dir doch die breite ausgeben lassen:
Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int width = display.getWidth();

Hoffe das passt so. Habe es auch in meinem Quellcode, den aber grade nicht hier und daher schnell ergoogelt.

Edit: Hier noch die Offizielle Seite: http://developer.android.com/reference/android/util/DisplayMetrics.html

— geändert am 23.09.2011, 08:52:28

Antworten
Martin A.
  • Forum-Beiträge: 19

23.09.2011, 11:31:33 via Website

Hallo Ben,

danke, das ist es! :-)

Eigentlich erstaunlich, dass es nicht per XML möglich ist, entsprechend zu skalieren. So muss ich eben meine Buttons im Code erzeugen. Aber wenigstens dürfte ich so zurechtkommen :-)

bis denn
Martin

Antworten