在圆内绘制正方形布局

问题描述 投票:8回答:1

我正在尝试将相对布局限制在一个圆内,即相对布局应类似于下图所示的正方形。

我正在尝试将版式的宽度和高度设置为:

√((diameter)²/2)大约是70%

square inside a circle(来源:yogaflavoredlife.com

public class SquareLayout extends RelativeLayout {
    public SquareLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int originalWidth = MeasureSpec.getSize(widthMeasureSpec);
        int originalHeight = MeasureSpec.getSize(heightMeasureSpec);
        int required = Math.min(originalWidth, originalHeight) * 7 / 10;

        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        setMeasuredDimension(required, required);
    }
}

我得到的是矩形布局而不是正方形布局:

谁能指导我我要去哪里哪里?

示例用法:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

    <com.example.widget.SquareLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#F55C5C">

    </com.example.widget.SquareLayout>

</RelativeLayout>
android android-layout android-custom-view
1个回答
1
投票

这是我得到解决方案的方式。首先,我创建了一个正方形框架来容纳所有布局。

© www.soinside.com 2019 - 2024. All rights reserved.