Autore Topic: Adattare fontsize in base allo spazio disponibile  (Letto 363 volte)

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Adattare fontsize in base allo spazio disponibile
« il: 06 Giugno 2013, 17:30:28 CEST »
0
Salve!
nella mia app devo mostrare un immagine con dentro 4 textview
le textview hanno come dimenzione  (perchè settando direttamente la dimenzione del font in alcuni schemri era troppo piccola)
- appearence Large
- appearence medium
-appearence small
-appearence small

per far entrare tutto nell'immagine, ho fatto un ciclo, cioè fin quando la somma delle altezze di queste 4 textview non è minore dell'altezza dell'immagine che le contiene, diminuisco la dimenzione del font di 1

concettualmente funziona, nell'emulatore pure (sotto la porzione di codice) ma testandolo su un galaxy s4 il testo diventa enorme, occupando lo schermo per intero..
idee del perchè?
Codice (Java): [Seleziona]
          if(altezza>=SpazioLibero || altezza>=(altezza_schermo/5)){
                                 //Diminuisco tutti i font di uno
                                 titolo.setTextSize(titolo.getTextSize()-1);
                                 artista.setTextSize(artista.getTextSize()-1);
                                 genere.setTextSize(genere.getTextSize()-1);
                                 difficolta.setTextSize(difficolta.getTextSize()-1);
                                 //Before.setTextSize(Before.getTextSize()-1);
                                // Now.setTextSize(Now.getTextSize()-1);
                                // After.setTextSize(After.getTextSize()-1);
                                 System.out.println("ciclo n° "+i+" la dimenzione di titolo è "  + titolo.getTextSize());
                                 i++;
                                 altezzaScritte = titolo.getMeasuredHeight()+artista.getMeasuredHeight()+genere.getMeasuredHeight()+difficolta.getMeasuredHeight();
                         }
                         
                          altezza=altezzaScritte; //se l'altezza è troppo schiacciata, i dati escono fuori dalla view