3

我以编程方式创建了一个带有文本和背景可绘制对象的 TextView。我想在 TextView 中居中文本,但文本居中在顶部。

在此处输入图像描述

这是我在 TextView 中居中文本的代码:

protected class TileView extends TextView{
    private int tileType;
    private int col;
    private int row;

protected TileView(Context context, int row, int col, int tileType) {

    super(context);
    this.col = col;
    this.row = row;
    this.tileType = tileType;

    String result = Integer.toString(RandomNumber(1,9));            
    Drawable image = getResources().getDrawable(tile_id[tileType]);
    setBackgroundDrawable(image);
    setClickable(true);
    setText(result);        
    setTextAppearance(context, R.style.boldText);           
    setOnClickListener(GameView.this);
}
}

这是我在 onLayout() 中的代码

int left = oneFifth * tileView.getCol();
int top = oneFifth * tileView.getRow();
int right = oneFifth * tileView.getCol() + oneFifth;
int bottom = oneFifth * tileView.getRow() + oneFifth;
tileView.layout(left, top, right, bottom);
tileView.setGravity(Gravity.CENTER);

如何在 TextView 中将文本居中?

4

4 回答 4

3

试试这个希望它可以帮助你

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);   

 yourTextView.setGravity(Gravity.CENTER);

检查此链接

于 2013-01-30T14:33:15.770 回答
2

你可以这样做:

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
于 2013-01-30T14:34:36.933 回答
1

您必须将其添加到 layoutparams 中,例如:

LayoutParams params = new LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
            params.weight = 1.0f;
            params.gravity=17;

17 是文档中 CENTER 的常量。

于 2013-01-30T14:35:06.190 回答
1

我使用 .XML 将我的文本居中 android:gravity="center_vertical|center_horizontal"

于 2013-01-30T14:32:51.117 回答