Java 如何获取视图的高度和宽度值';文本大小(以像素为单位)?

Java 如何获取视图的高度和宽度值';文本大小(以像素为单位)?,java,android,text,view,text-size,Java,Android,Text,View,Text Size,我需要获取textView文本的高度和宽度。 是的,有一个名为textView.getTextSize()的方法,但我不明白这个大小是什么意思:高度、宽度还是其他?我需要精确的宽度和高度值(如果值以像素而不是sp为单位,那就好了)。getTextSize()返回TextView的行高(以像素为单位) 我认为您正在寻找的是textView.getLayout().getHeight()和textView.getLayout().getWidth(),尽管如果textView最近更改,则布局可能为空

我需要获取textView文本的高度和宽度。 是的,有一个名为textView.getTextSize()的方法,但我不明白这个大小是什么意思:高度、宽度还是其他?我需要精确的宽度和高度值(如果值以像素而不是sp为单位,那就好了)。

getTextSize()
返回
TextView
的行高(以像素为单位)


我认为您正在寻找的是
textView.getLayout().getHeight()
textView.getLayout().getWidth()
,尽管如果textView最近更改,则
布局可能为空。

一种方法是使用和

我不能完全确定高度和宽度是否以像素为单位。基于此,关于
RectF
,我认为
Rect
也应该使用像素。

getTextSize()
返回文本集的大小,它实际上是
TextView
的字体大小,您可以通过查看
setTextSize
方法来确定:

要计算TextView的高度/宽度,可以使用:

这是假设视图已被测量和布置

关于此处可能有用的有用转换,请参阅:


如果不确定某个方法的作用,请检查文档,并检查其他方法以了解它的作用,就像您可以通过查看
setTextSize

中的“getTextSize()返回文本视图的像素高度”来了解
getTextSize
返回的内容一样。谢谢。这是一个很好的信息。但另一部分你误解了。不,我不需要视图的值,我只需要视图文本的值。只有那个。有趣的实验:我试着用Log.d()获取值,第一个值是高度,我试着用代码获取,你写道,第二个值是相同的高度,但这次是通过textView.getTextSize()获取的。我认为textView.getTextSize()返回高度的值,因为另一个回答的人说。但奇怪的是:两个返回值并不相同。第一个==31,第二个==39.0。我读了文档,听说textView.getTextSize()以像素为单位返回值。同样的事情也写在Rect上。发生了什么事?O其他差异似乎与
measureText()
gettexbound()
宽度之间的差异相似,如图所示。
String text = (String) textView.getText();
Rect textBound = new Rect();
textView.getPaint().getTextBounds(text,0,text.length(),textBound);
int textHeight = textBound.height();
int textWidth = textBound.width();