在方形框架布局中设置文本重心

Set text gravity center in square Frame layout

我需要在 center FrameLayout 中设置文本,但是如果我 setGravity center 它将是 中心水平。 我创建方形框架布局。

public class SquareFrameLayout extends FrameLayout {
public SquareFrameLayout(@NonNull Context context) {
    super(context);
}

public SquareFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);
}

public SquareFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs, @AttrRes int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    int width = MeasureSpec.getSize(widthMeasureSpec);
    int height = MeasureSpec.getSize(heightMeasureSpec);
    int size = width < height ? height:width;
    setMeasuredDimension(size,size);
}

<com.example.student.game.SquareFrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/GameButtonFrameLayout"
    android:background="#beb7b7"
    android:layout_margin="15dp"
    android:clickable="true">
<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/GameButtonText" />
<ImageView
    android:id="@+id/GameButtonImage"
    android:layout_gravity="center"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
</com.example.student.game.SquareFrameLayout>    

但是如果我将重力 - Gravity.CENTER 设置为 SquareFrameLayout 中的 textView,则重力仅设置中心 水平.

在文本视图中添加重心。 希望这有帮助。