Domanda

Non direi la mia app è un testo pesante ... ma visualizza a volte stringhe casuali che sono più di altri. Si adattano bene sul mio Droid 2, ma so che non verranno visualizzati gli stessi su droidi più piccoli. Qualcuno sa il modo corretto di formattazione del testo di dimensioni diverse per assicurare che possa funzionare su tutti gli androidi?

È stato utile?

Soluzione

Se si desidera solo per rendere il testo più grande o più piccolo si dovrebbe preferire utilizzando stili predefiniti forniti da Android:

<TextView ... android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView ... android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView ... android:textAppearance="?android:attr/textAppearanceSmall" />

Nessuno dei due è di default, default è:

<TextView ... android:textAppearance="?android:attr/textAppearance" />

Può essere sicuramente applicato non solo a TextView, ma per altre viste pure.

Altri suggerimenti

Google consiglia di utilizzare sp per le dimensioni dimensione del testo. I layout di voi avranno bisogno di lavorare in modo che quando la bilancia di layout funziona a tutte le dimensioni per il miglior grado possibile (layout può essere necessario per le diverse dimensioni dello schermo). Se il testo potrebbe non essere contenuto, avvolgere o ellipsize it

SP e DP non sembrano lavorare come ci si potrebbe aspettare. DP dovrebbe essere "visualizzazione indipendente", e SP è descritto come la stessa; ma può essere scalata (presumibilmente tramite comandi "zoom"). Tuttavia, essi non funzionano come ci si aspetterebbe.

Per esempio, ho due dispositivi, un telefono 320x480, e un Nexus; quali è 800x1280 MA che si descrive come SW600 (non ho idea perché). Per vedere che cosa stava succedendo, ho aggiunto un TextView al mio punto di vista, che si compone di 60 caratteri 'X' (scelto perché guardano la stessa crenatura come spaziatura fissa).

Il textView textSize è stato fissato a 10dp, e 60 di questi completamente riempire lo schermo Nexus. Tuttavia, essi appaiono esattamente le stesse dimensioni del telefono, e forma quasi due linee.

Quindi, sembra che DP non visualizzare indipendente; ma semplicemente descrive il numero (approssimativo) di pixel ogni carattere sarà riferiti al massimo. Definire la dimensione in SP non fa alcuna differenza.

Questo non è molto utile -. Mi aspettavo che sarebbe stata applicata una qualche forma di scala, in modo da poter selezionare un formato appropriato sul mio cellulare, e sarebbe essere scalata per il Nexus

Ad esempio, se la mia linea di testo era lunga circa trenta personaggi, e ho voluto per riempire un'intera linea sullo schermo, lo definirei come 10dp; e ogni dp sarebbe un pixel (approssimativamente). Poi, quando è stato disegnato sul Nexus, ogni PS sarebbe due pixel, e sembrerebbe il doppio.

Non si tratta di come funziona, per quanto posso dire; che lo rende abbastanza inutile.

La mia unica soluzione , e non è un elegante uno, è quello di solo le dimensioni di uso da un file dimens.xml, e di avere sei di loro, uno per ciascuna delle larghezze comuni (240,320,480,600,720,800 - qualcosa di più alto possibile ordinare sé fuori), quindi progettare il mio codice per adattare sul Nexus, e utilizzare un foglio di calcolo che ho scritto per scalare i valori in dimens.xml per le lunghezze dei comuni. È un dolore; ma funziona.

A meno che io sto usando sbagliato, il sistema Android è solo rotto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top