0

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

4

1 回答 1

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);
    }
}
于 2012-05-08T10:39:29.220 回答