gpt4 book ai didi

android - 如何创建正方形布局并将其水平居中

转载 作者:太空狗 更新时间:2023-10-29 13:18:39 25 4
gpt4 key购买 nike

我想自定义一个布局,做成正方形。在 xml 中,我将其 layout_width 和 layout_height 设置为“match_parent”。然后在它的 onMeasure() 方法中,我得到它的高度和宽度的值,并将它们中最短的值设置为正方形每一边的值。代码有点像这样:

<SquaredRelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
/>

public class SquaredRelativeLayout extends RelativeLayout {
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
if(width > height) {
super.onMeasure(heightMeasureSpec, heightMeasureSpec);
} else {
super.onMeasure(widthMeasureSpec, widthMeasureSpec);
}
}
}

现在这是我的问题:我需要将此布局中心水平设置为其父级。但每次当 width > height 时,布局将对齐到其父元素的左侧。有没有人如何解决这个问题?

最佳答案

SquaredRelativeLayout 的父级中使用 android:gravity="center"

SquaredRelativeLayout 中使用 android:layout_centerInParent="true"(而不是 android:layout_centerHorizo​​ntal="true")

关于android - 如何创建正方形布局并将其水平居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31789470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com