加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 获取TextView的高度

发布时间:2020-12-14 23:21:14 所属栏目:Java 来源:网络整理
导读:我有一些文本将放在TextView中.我用setText()做到了. 现在我需要找到文本在TextView中占用的行数或高度.我尝试使用getHeight(),但它总是返回0. 无论如何要获得TextView中文本的高度? 解决方法 正如约翰所指出的,你将无法在setText之后立即获得高度.我不确定
我有一些文本将放在TextView中.我用setText()做到了.

现在我需要找到文本在TextView中占用的行数或高度.我尝试使用getHeight(),但它总是返回0.

无论如何要获得TextView中文本的高度?

解决方法

正如约翰所指出的,你将无法在setText之后立即获得高度.我不确定在TextView上使用getHeight()会对你有多大帮助.视图的高度不仅取决于视图中可见文本的高度,还取决于TextView所在的视图组/布局.如果视图组告诉TextView最大化高度,getHeight()将无处可见如果你等到文本呈现后.

我看到有很多方法可以做到:

>子类TextView并覆盖onSizeChanged方法.在那里,调用supers onSizeChanged,然后通过getLineCount()获取TextView中的行数,使用getLineHeight()获取每行的高度.这可能会或可能不会比使用getHeight()更好,具体取决于您的布局或诸如此类的东西.
>不要使用Textviews维度.使用TextView.getPaint()获取TextViews Paint,然后计算宽度和高度

矩形边界;
paint.getTextBounds(text,text.length(),bounds);

您现在将拥有范围内的尺寸.您现在可以使用paint.breakText来查看您在一行中可以容纳多少文本.可能过于麻烦并且不能保证(对于我未经训练的眼睛)与TextView使用的逻辑相同.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读