Aller au contenu

Adapter automatiquement la taille du texte dans un textview.


Profete162

Recommended Posts

Salut à tous,

J'utilise un textview de taille fixe pour afficher certains éléments d'une base de données.

Le petit stress est que certains de ces éléments sont assez longs et que la textview n'en affiche qu'une partie.

J'ai tenté un bout de code comme celui-ci:

        while(monTextView.getLineCount()>1)
       {
           monTextView.setTextSize(monTextView.getTextSize()-1);
       }

Mais cela fonctionne de temps en temps avec un comportement bizarre.

Avez vous d'autres idées pour afficher correctement le texte en entier?

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

Tu ne peux pas mettre "wrap_content" dans les attributs xml layout_height / layout_width ?

Si, mais je suis limité par la taille de l'écran ;-)

Je ne peux plus agrandir la taille de ma textview ( en fait mea culpa, c'est un bouton avec du texte pas un textview) Car les autres éléments à l'écran ne lui laissent plus de place.

C'est vraiment la taille du texte qui doit diminuer

Je vais y jeter un look en espérant que ce soit compatible avec un bouton

Lien vers le commentaire
Partager sur d’autres sites

Disons qu'en tant qu'utilisateur je préfère avoir toujours la même taille de texte et un défilement au besoin (ellipsize:marquee donc apparemment), parce que l'histoire d'adaptation de la taille du texte à la taille du conteneur c'est risquer de se retrouver avec une font qui va de 16dip à 8dip, bonjour l'expérience utilisateur :/

Et les WebView je suis pas hyper fan non plus, ça a pas un peu tendance à être très lourd ?

Lien vers le commentaire
Partager sur d’autres sites

Je suis tout à fait d'accord avec toi naholyr.

Une premiere solution consiste à utiliser: monTexte.setSingleLine(true);

Car en fait mon problème venait de mon appli des trains, par défaut, Android coupe le texte au niveau du caractère "-" Ce qui fait que dans Bruxelles-luxembourg, par exemple, il manque juste la place pour le "G" final dans la textview.

Android affiche alors juste "Bruxelles-", ce qui peut-être déroutant, juste pour un G manquant. En mettant setSingleLine(true) il affiche bien bien "Bruxelles-Luxembour"(sans le G) ce qui est donc convenable.

Bien oui, en belgique, nous avons quelques noms folkloriques du genre: berchem-saint-agathe, rhode-saint-genese, jemeppe sur sambre, brussels national luchtaven et j'en passe.

à retenir de ma question, en conclusion: monTexte.setSingleLine(true);

Lien vers le commentaire
Partager sur d’autres sites

Tu n'as pas testé le défilement ? Parce que dans mon appli au début j'avais testé cet attribut justement, mais je n'avais jamais réussi à le faire marcher. Comme je débute dans le domaine j'ai certainement loupé des trucs (surtout à l'époque), du coup un retour m'intéressait ;)

Lien vers le commentaire
Partager sur d’autres sites

Ce qui me surprend la dedans, c'est que dans mon jeu, j'ai un textview ou je mets le mots que rentre le joueur à partir d'une grille de lettres, et j'ai remarqué que le scale se faisait automatiquement s'il rentrait trop de lettres.

Mais je ne crois pas avoir fait expres !!!!

gratte, gratte, gratte...

Emmanuel / Alocaly

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...