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

7ajki6be  于 2021-07-06  发布在  Java
关注(0)|答案(3)|浏览(317)

我需要得到文本视图文本的高度和宽度。是的,有一个叫做textview.gettextsize()的方法,但我不明白这个大小意味着什么:高度、宽度还是其他什么?我需要确切的宽度和高度值(这将是好的,如果值将在像素而不是sp)。

0vvn1miw

0vvn1miw1#

一种方法是使用 getPaint() 以及 getTextBound() ```
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();

我不完全确定高度和宽度是否以像素为单位。基于本问答,关于 `RectF` ,我相信 `Rect` 也应该使用像素。
szqfcxe2

szqfcxe22#

getTextSize() 返回 TextView 的行高(像素)。
我想你要找的是 textView.getLayout().getHeight() 以及 textView.getLayout().getWidth() ,尽管 Layout 如果textview最近更改,则可以为null。

txu3uszq

txu3uszq3#

getTextSize() 返回上文本集的大小,实际上是 TextView ,您可以通过查看 setTextSize 方法:https://developer.android.com/reference/android/widget/textview#settextsize(整数,%20float)
要计算textview的高度/宽度,可以使用:
https://developer.android.com/reference/android/view/view#getmeasuredheight()https://developer.android.com/reference/android/view/view#getmeasuredwidth()
这是假设视图已被测量和布局。
至于有用的转换,这里可以参考:如何转换dp,px,sp之间,特别是dp和sp?
当不确定一个方法做什么的时候,检查文档,同时检查其他方法来找出它做什么,就像你能找出什么一样 getTextSize 通过查看返回 setTextSize .

相关问题