java - android 中的换行高度

标签 java android textview

现在我有一个代码可以计算段落的高度和宽度并进行相应的设置。然而,每当断线(\n)穿过我的段落时,我就会遇到这个奇怪的问题,我使用此代码来计算我的高度。我还计算宽度并确保线条正确适合。

float textSize = t.getTextSize();
Paint paint = new Paint();
paint.setTextSize(textSize);

但是,由于某种原因,无法计算断线的高度,这意味着我在执行计算期间丢失了几行或显示了半行导致断线的原因。

我的问题是,如何计算它所占据的空间的断裂线的高度?

最佳答案

我无法解决这个问题。不过,我确实尝试删除宽度终点边缘的 3 个额外字符。有效。然而,真正的问题更多地在于字符宽度。如果一个字符没有在 Android 上注册,如果你的字母与常规字母表完全不同,那么计算结果与实际结果可能会非常不同。

使用此代码,您可以确定端点的边缘。

totalCurrentWidth = t.getPaint().measureText(s.substring(start, end));

但是,未在系统中注册的字符可能有不同的结尾或根本没有结尾(例如中文或台湾语)。

在 verdana 中使用的每个单独字符期间,与文本的实际结果相比,它会产生不同的间距。

如果有人发现我的逻辑有问题,请随时评论我。毕竟我只是努力进步。

关于java - android 中的换行高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932103/

相关文章:

java - 线程死锁避免

android - 如何使用唤醒锁防止 onStop

android - TextView anchor 链接空间

java - 监控应用程序 Web 服务请求和响应时间

用于替换除下划线以外的所有特殊字符的 Java 正则表达式

java - Spring Boot Hibernate、CriteriaBuilder

android - 通知小图标颜色不变 Pushwoosh Android SDK

java - 将 JsonObject 在 POST 中从 android 发送到服务器

android - 使 ExpandableListView 和 Textview 一起滚动

ios - Textview scrollRangeToVisible 使范围到顶​​部