当TextView较窄时,如何强制文本垂直居中?

时间:2012-05-03 15:00:19

标签: java android

我目前正在使用setGravity(Gravity.CENTER_VERTICAL),当TextView足够高时这很有效。但是,如果TextView很窄,则只剪切文本的底部;我希望从上方和下方剪切 文本。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,

如果视图高度不够,则必须移动滚动值。你可以在onlayout函数中调用这个函数,

protected void alignVerticalAlingment() {
    int fontSize = getLineCount() * getLineHeight();
    if (getHeight() > 0) {
            setPadding(getPaddingLeft(), 0, getPaddingBottom(), 0);
            int height = getHeight();
            int y = (fontSize - height + (int) getPaint()
                    .descent()) / 2;
            scrollTo(0, y);
    }
}