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

时间:2017-03-06 11:39:36

标签: android android-studio android-framelayout

我需要在 center FrameLayout中设置文字,但如果我setGravity 中心,则仅 center 水平。 我创建了Square Frame布局。

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设置为textView SquareFrameLayout,则重力设置仅为水平

1 个答案:

答案 0 :(得分:0)

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