在我的工作中,我们的UI总是在sp(或px)中标记textView(aTextView)的字体大小;在我们的例子中,另一个视图(如bView)在aTextView下面,aTextView的实际高度将影响bView的位置;这将是改变整体布局,差别不大。
我想知道textSize中textview的真实高度,当我们使用wrap_content设置TextView的layout_height时。我们可以用1px = 1sp的简单方式讨论这个问题。
答案 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,您可以反之亦然。约束项将根据约束项自动调整大小。