Question

Je ne dirais pas que mon application est lourd texte ... mais il affiche des chaînes aléatoires qui sont parfois plus longues que d'autres. Ils adaptent très bien sur mon droid 2, mais je sais qu'ils ne seront pas afficher les mêmes sur droïdes plus petits. Est-ce que quelqu'un sait la bonne façon de mettre en forme un texte différent de taille pour nous assurer qu'elle fonctionnera sur tous les androïdes?

Était-ce utile?

La solution

Si vous voulez juste faire un texte plus ou moins important, vous devriez préférer utiliser les styles par défaut fournis par Android:

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

Aucun d'entre eux est par défaut, par défaut est:

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

Il peut être sûrement appliquée non seulement à TextView, mais à d'autres points de vue aussi bien.

Autres conseils

Google vous recommandons d'utiliser sp pour les dimensions de la taille du texte. Les dispositions que vous utilisez besoin de travailler alors quand les échelles de mise en page, il fonctionne à toutes les tailles au meilleur degré possible (vous devrez peut-être mises en page pour les différentes tailles d'écran). Si le texte ne tienne pas, l'envelopper ou ellipsize il

SP et DP ne semblent pas travailler comme on pouvait s'y attendre. DP est censé être « affichage indépendant », et SP est décrit comme le même; mais peut être mis à l'échelle (probablement par des commandes « zoom »). Cependant, ils ne fonctionnent pas comme on peut s'y attendre.

Par exemple, j'ai deux appareils, un téléphone 320x480, et un Nexus; qui est 800x1280 mais qui se décrit comme SW600 (je ne sais pas pourquoi). Pour voir ce qui se passait, j'ai ajouté un textview à mon avis, qui se compose de 60 « X » (caractères choisis parce qu'ils ont le même aspect que crénage chasse fixe).

Le textView textSize a été fixé à 10DP, et 60 de ces remplir entièrement l'écran Nexus. Cependant, ils apparaissent exactement la même taille sur le téléphone, et forme près de deux lignes.

Alors, il semble que DP affiche pas indépendant; mais décrit simplement le nombre (approximatif) de pixels chaque caractère sera donné au maximum. Définition de la dimension SP ne fait aucune différence.

est pas très utile -. Je me attendais qu'une certaine forme de mise à l'échelle sera appliquée, pour que je puisse choisir une taille appropriée sur mon téléphone, et il serait mis à l'échelle pour le Nexus

Par exemple, si ma ligne de texte était à peu près trente caractères, et je voulais pour remplir une ligne entière à travers l'écran, je définirais comme 10DP; et chaque dp serait un pixel (à peu près). Puis, quand il a été dessiné sur le Nexus, chaque dp serait deux pixels, et il semble deux fois la taille.

Ce n'est pas comment cela fonctionne, pour autant que je peux dire; ce qui le rend assez inutile.

Ma seule solution , et ce n'est pas une élégante, est à seulement dimensions d'utilisation d'un fichier dimens.xml, et d'avoir six d'entre eux, un pour chacune des largeurs communes (240,320,480,600,720,800 - quoi que ce soit plus élevé peut se régler), puis concevoir mon code pour tenir sur le Nexus, et utiliser une feuille de calcul, je l'ai écrit à l'échelle des valeurs dans dimens.xml pour les largeurs communes. C'est une douleur; mais cela fonctionne.

À moins que je l'utilise mal, le système Android est tout simplement cassé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top