我需要在 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
,则重力设置仅为水平。
答案 0 :(得分:0)
在文字视图中添加重心。 希望这会有所帮助。