繁体   English   中英

无法在以编程方式创建的 TextView 中垂直对齐文本

[英]Unable to align text vertically in programmatically created TextView

我正在以编程方式创建一个在画布上呈现的 TextView。 我这样做的代码是:

TextView textView = new TextView(context);
textView.layout(0, 0, 140, 180);
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
textView.setGravity(Gravity.CENTER_VERTICAL);
textView.setBackgroundColor(Color.GREEN);
textView.setTextColor(Color.BLACK);
textView.setText("ABC");
textView.setDrawingCacheEnabled(true);

canvas.drawBitmap(textView.getDrawingCache(), scaledX, scaledY, null);

但它不垂直对齐。 我也尝试将它与Gravity.BOTTOM对齐,但没有结果。 水平对齐文本没有问题。

也许您可能需要设置 TextView 的高度。 如果不设置 TextView 的高度,它可能有一个 wrapContent 高度,因此 center_vertical 没有影响。

下面是将高度设置为 MatchParent 的简单示例(确保有足够的空间使其高于 Text 字体高度,以便它有垂直居中的空间)

textView.setLayoutParams(new ViewGroup.LayoutParams(
    ViewGroup.LayoutParams.MATCH_PARENT,
    ViewGroup.LayoutParams.MATCH_PARENT));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM