TextView实际高度与wrap_content单行

时间:2017-02-16 06:42:05

标签: android android-layout textview

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

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

3 个答案:

答案 0 :(得分:0)

使用此方法,您可以识别 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?

复制

答案 1 :(得分:0)

根据我的经验,文字大小为TextView / 16sp的{​​{1}}的高度为18dp,即顶部和底部的16dp + 1dp填充。

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

如果我碰巧找到有关TextViews大小的官方信息,我会在这里发帖。

答案 2 :(得分:0)

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

TextView B垂直约束到ImageView,您可以反之亦然。约束项将根据约束项自动调整大小。