web-dev-qa-db-fra.com

Comment trouver la zone de texte (hauteur/largeur) de TextView par programme dans Android

J'ai un EditText, un Button et un TextView. En cliquant sur le bouton, textview affiche le texte écrit dans edittext. Est-il possible de trouver la taille de textview occupée en fonction du texte. Si elle comporte trois caractères " abc ", quelle est maintenant la largeur, si elle comporte cinq caractères tels que " abcde ", quelle est la largeur?

13
BST Kaal
Rect bounds = new Rect();
Paint textPaint = textView.getPaint();
textPaint.getTextBounds(text,0,text.length(),bounds);
int height = bounds.height();
int width = bounds.width();

ou

textView.setText("bla");
textView.measure(0, 0);
textView.getMeasuredWidth();
textView.getMeasuredHeight();
58
pigeongram

S'il vous plaît essayez ceci:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TextView edit = (TextView) findViewById(R.id.edit);
    edit.setTextSize(20);       
    edit.setText("Hello, world");       
    edit.measure(0, 0);
    int width = edit.getMeasuredWidth();
    Log.w("width", width.toString());
}

Avant d’obtenir de la largeur, vous devez mesurer l’édition vue/étiquette/texte. Merci de me faire savoir si cela ne fonctionne pas. 

10
Iosif

Essayez de cette façon, espérons que cela vous aidera à résoudre votre problème.

yourTextView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
   @Override
   public void onGlobalLayout() {
     int width = yourTextView.getMeasuredWidth();
     int height = yourTextView.getMeasuredHeight();

   }
});
2
Haresh Chhelana

dites-moi s'il vous plaît la largeur en ??? Veux-tu ?

TextView méthode getWidth() vous donne la largeur de votre vue, en pixels 

TextView textView = (TextView)findViewById(R.id.textview);
textView.getWidth(); //width of your view, in pixels 
2
MilapTank
TextView txt = new TextView(mContext);
txt.setText("Some Text)";
int height = txt.getLineCount() *  txt.getLineHeight();
int width = txt.getWidth();
0
Monir Khlaf