Mise à l'Échelle Auto TextView Texte à l'intérieur de Limites

Je suis à la recherche d'une façon optimale pour redimensionner l'habillage du texte dans un TextView pour qu'elle s'adapte à l'intérieur de ses getHeight et getWidth limites. Je ne suis pas simplement à la recherche d'un moyen pour faire passer le texte - je veux m'assurer à la fois des enveloppements et est assez petit pour tenir entièrement sur l'écran.

J'ai vu quelques cas sur StackOverflow où d'auto redimensionnement qui était nécessaire, mais ils sont soit des cas très particuliers avec hack solutions, n'ont pas de solution, ou qui impliquent de re-dessiner le TextView de manière récursive jusqu'à ce qu'il soit assez petit (ce qui est de la mémoire intenses et des forces à l'utilisateur de regarder le texte de rétrécissement, étape par étape, à chaque récursion).

Mais je suis sûr que quelqu'un a trouvé une bonne solution qui n'implique pas ce que je fais: l'écriture de plusieurs lourde des routines d'analyser et de mesurer le texte, de redimensionner le texte, et répéter jusqu'à ce qu'un appareil de petite taille, il a été trouvé.

Ce que les routines ne TextView utiliser pour envelopper le texte? Ne pouvait pas ceux qui sont en quelque sorte utilisé pour prédire si le texte sera suffisamment petit?

tl;dr: est-il une bonne pratique de l'auto-redimensionner une TextView pour s'adapter, enveloppé, dans son getHeight et getWidth limites?

  • J'ai aussi essayé d'utiliser le getEllipsisCount dans StaticLayout à détecter le moment où le texte a été de sortir des limites du terrain, mais qui ne fonctionnait pas pour moi, j'avais demandé à parler: stackoverflow.com/questions/5084647/...
  • Pourquoi ne t vous dessinez un patch neuf textview ? il sera automatiquement ajuster à ses limites. Suis-je de vous obtenir de droite frère?
  • Patch neuf textview? Je ne suis pas familier avec neuf-patch, il semble être un format d'image chose, mais... je suis à la recherche de la documentation sur la façon dont cela pourrait être utilisé avec un textview. Savoir où je pourrais obtenir plus d'informations?
  • À la lecture sur un peu plus loin, je reçois l'impression que neuf-patch est juste pour le redimensionnement de quelque chose qui a déjà un format défini - mais j'ai besoin de quelque chose qui va prendre une corde et de trouver sa taille optimale et le format à l'intérieur de certaines limites.
  • Double Possible de: stackoverflow.com/a/7875656/435605
  • J'ai trouvé une bibliothèque qui semble faire cela automatiquement: ankri.de/autoscale-textview ne l'ai pas testé si
  • J'ai eu un bref coup d'œil à la bibliothèque mentionné par Seppl - il manque de la fonction de ellipsising le texte si c'est trop long, même à la plus petite textsize, qui Chase solution offre. Donc, si le texte est trop long, le textview, la hauteur augmente, ce qui n'est pas la question posée.

InformationsquelleAutor Nathan Fig | 2011-02-17