在方形框架布局中设置文本重心
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
,则重力仅设置中心 水平.
在文本视图中添加重心。
希望这有帮助。
我需要在 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
,则重力仅设置中心 水平.
在文本视图中添加重心。 希望这有帮助。