Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get the size of a text in TextView

I have a problem placing a textView at specified center's x and y coordinates. Firstly, I tried to set the text in the textView, and to move the view with the width and the height of the view from this link.

But it doesn't work, and I'd like to try something else. I'd like to know if there is a method to get the size which a specified text will take in my textView? I mean, I know the text and the textSize, how can I get the width and the height my textView will take?

Something like the method (NSString)sizeWithFont; for those who know iPhone dev.

like image 519
Imotep Avatar asked Jul 18 '11 14:07

Imotep


People also ask

How do I Auto Resize TextView?

To use preset sizes to set up the autosizing of TextView in XML, use the android namespace and set the following attributes: Set the autoSizeText attribute to either none or uniform. none is a default value and uniform lets TextView scale uniformly on horizontal and vertical axes.

How do I change font size in XML?

Adding fonts to a TextView To set a font for the TextView , do one of the following: In the layout XML file, set the fontFamily attribute to the font file you want to access. Open the Properties window to set the font for the TextView .

Which attribute increases or decreases the font size of TextView?

app:autoSizeMinTextSize=”10sp” using this attribute the TextView will be resized up to the size of 10sp and app:autoSizeStepGranularity=”2sp” using this attribute we are uniformly reducing the size of the TextView as 2sp when it goes out of the screen.


2 Answers

Rect bounds = new Rect();  textView.getPaint().getTextBounds(textView.getText().toString(), 0, textView.getText().length(), bounds); 

bounds.width() will give you the accurate width of the text in the Text View.

like image 161
Midverse Engineer Avatar answered Sep 20 '22 18:09

Midverse Engineer


If your textview is called tv

tv.setText("bla"); tv.measure(0, 0);       //must call measure! tv.getMeasuredHeight(); //get height tv.getMeasuredWidth();  //get width 

More on this (updated): How to get width/height of a View

like image 44
Sherif elKhatib Avatar answered Sep 21 '22 18:09

Sherif elKhatib