1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

TextView Pixelbreite bei verschiedenen Auflösungen?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von c4m3l, 16.06.2010.

  1. c4m3l, 16.06.2010 #1
    c4m3l

    c4m3l Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    11.05.2010
    Hey Leute,

    hoffe ihr könnt mir helfen, glaub die Frage is ziemlich billig und ich steh grad aufm Schlauch :D
    Also: wenn ich in einer Textview einen Text mit fester Breite (exakt 101 Zeichen in jeder Zeile) einbinde, hat diese Textview dann bei jeder der vielen Displayauflösungen die gleiche Pixelbreite wenn die width auf "wrap_content" steht?
    Hintergrund ist der, dass ich vorhabe mit einer von vornherein festgelegten Breite der Textview zu arbeiten. getWidth() liefert mir zum Start der App nämlich noch "0" zurück, da der ganze Layoutkrams noch nicht durchgelaufen ist und ich keine Ahnung hab, wie ich getWidth() zum richtigen Zeitpunkt aufrufe..
    Also will ich eben einen festen Wert vorgeben anstatt das dynamisch auszulesen, nur sollte dieser Wert für alle Handys dann eben die gleichen Auswirkungen haben..

    Gruß c4m3l :)
     
  2. MichaelS, 17.06.2010 #2
    MichaelS

    MichaelS Fortgeschrittenes Mitglied

    Beiträge:
    370
    Erhaltene Danke:
    51
    Registriert seit:
    14.08.2009
    arbeite nicht mit pixel... wenn de xml benutzt, kannst de dip nutzen falls im code nutzt, musst du es selber ausrechen ;) in der doku vom sdk steht wie du es berechnen musst =)
     
  3. c4m3l, 21.06.2010 #3
    c4m3l

    c4m3l Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    11.05.2010
    hmm das ausrechnen mit dpi hab ich nicht wirklich hinbekommen, hab aber mittlerweile ne andere Lösung gefunden :) also für die, dies interessiert:

    bis man auf die breite/höhe von Views mittels getWidth()/getHeight() zugreifen kann, müssen erst ein paar Vorgänge ablaufen bis Android das Layout aufgebaut hat (measurement usw.). Am Ende dieser Abläufe bekommt die View/das Layout den WindowFocus, d.h., sobald die View, von der man die Breite rausbekommen will den Fokus bekommen hat, kann man auch erfolgreich getWidth() auf diese anwenden.
    Das bedeutet: einfach folgende Methode in den Code einbinden, und innerhalb der If-Abfrage kann man auf getWidth() zugreifen:

    Code:
    public void onWindowFocusChanged(boolean hasFocus) {
             super.onWindowFocusChanged(hasFocus);
    	 if(hasFocus==true){
    	      Log.d("myview", "Breite TextView: " + TextView.getWidth());
    	 }
    }
    
    bei mir klappts :)
     

Diese Seite empfehlen