1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  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