【问题标题】:TextView real height with wrap_content single line带有 wrap_content 单行的 TextView 实际高度
【发布时间】:2017-02-16 16:56:45
【问题描述】:

在我的工作中,我们的 UI 总是在 sp(或 px)中标记 textView(aTextView)的字体大小;在我们的例子中,另一个视图(如 bView)在 aTextView 下面,aTextView 的实际高度会影响 bView 的位置;这将改变整体布局,差别不大。

想知道一个textview在不同textSize下的真实高度,当我们使用wrap_content设置TextView的layout_height时,我们可以用1px=1sp的简单方式来讨论这个问题。

【问题讨论】:

标签: android android-layout textview


【解决方案1】:

这里用这个方法可以识别textview高度

public static int getHeight(Context context, String text, int textSize, int deviceWidth) {
   TextView textView = new TextView(context);
   textView.setText(text);
   textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
   int widthMeasureSpec = MeasureSpec.makeMeasureSpec(deviceWidth, MeasureSpec.AT_MOST);
   int heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
   textView.measure(widthMeasureSpec, heightMeasureSpec);
   return textView.getMeasuredHeight();
}

如果textSize未以像素为单位,请更改setTextSize()的第一个参数。

复制自How to Measure TextView Height Based on Device Width and Font Size?

【讨论】:

  • 感谢此方法,我的目的是了解官方信息中顶部和底部的填充。
【解决方案2】:

根据我的经验,文本大小为 16sp/16dpTextView 的高度为 18dp,即顶部和底部的内边距为 16dp + 1dp。

请注意,这只是一个估计值。实际高度可能取决于也可能不取决于许多其他因素,例如字体和字体大小等。要检查,您可以在布局中将方形视图放在旁边或通过代码检查。

如果我碰巧找到任何有关 TextView 大小的官方信息,我会在这里发布。

【讨论】:

  • 是的,我只是在你的结论中测量了它,但作为一个估计。等待你的官方信息,这就是我需要的。我已经找到了很长时间。
【解决方案3】:

使用约束布局可以解决你的问题。试试看。Image

TextView B 垂直限制在 ImageView 上,反之亦然。受约束的项目将根据它被约束的项目自动调整大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多