在TextView中获取文本的大小

我有一个问题放在指定的中心的X和Y坐标textView。 首先,我尝试在textView中设置文本,并从该链接移动视图的宽度和高度。

但它不起作用,我想尝试一些其他的东西。 我想知道是否有一个方法来获取指定的文本将在我的textView中采取的大小? 我的意思是,我知道文本和textSize,我怎么能得到我的textView将采取的宽度和高度?

就像方法(NSString)sizeWithFont; 对于那些懂iPhone的人来说

如果你的textview被称为电视

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

更多关于这个(更新): 如何获得视图的宽度/高度

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

bounds.width()会给你在文本视图中文本的准确宽度。

出于某种原因,Midverse工程师的解决scheme并不总是给我正确的结果(至less在一些Android版本)。 Sherif elKhatib的解决scheme工作,但有改变MeasuredWidth和高度的副作用。 这可能会导致textView的位置不正确。

我的解决scheme

 width = textView.getPaint().measureText(text); metrics = textView.getPaint().getFontMetrics(); height = metrics.bottom - metrics.top;