J'aimerais aussi avoir de la hauteur si possible.
Réponses
Trop de publicités?Vous pouvez utiliser la méthode getTextBounds (String text, int start, int end, Rect bounds) d'un objet Paint. Vous pouvez utiliser l’objet paint fourni par un objet TextView ou en créer un vous-même avec l’apparence souhaitée.
En utilisant un TextView, vous pouvez effectuer les opérations suivantes:
Rect bounds = new Rect();
Paint textPaint = textView.getPaint();
textPaint.getTextBounds(text,0,text.length(),bounds);
int height = bounds.height();
int width = bounds.width();
Si vous avez juste besoin de la largeur, vous pouvez utiliser:
float width = paint.measureText(string);
http://developer.android.com/reference/android/graphics/Paint.html#measureText(java.lang.String )
Il existe deux types de largeur de mesures en faveur d'un texte. L'un est le nombre de pixels qui a été établi dans la largeur, l'autre est le nombre de "pixels" le curseur doit être avancé après l'élaboration de ce texte.
de la peinture.savoir measuretext et de la peinture.getTextWidths retourne le nombre de pixels (en float) qui le curseur doit être avancé après l'élaboration de la chaîne. Pour le nombre de pixels peint utilisez de la peinture.getTextBounds comme mentionné dans d'autres réponses. Je crois que c'est la "Avance" de la police.
Pour certaines polices de ces deux mesures diffèrent (beaucoup), par exemple la police Black Chancery ont des lettres qui dépassent les autres lettres (chevauchement) - voir la capitale de L'. Utilisez de la peinture.getTextBounds comme mentionné dans d'autres réponse pour obtenir pixels peint.