我正在尝试让相对布局在圆内限制,即相对布局应该像下图所示的正方形一样。
我正在尝试设置布局的宽度和高度为:
√((直径)²/2),约为70%
(来源:yogaflavoredlife.com)
我得到的是矩形布局而不是正方形布局:
我正在尝试设置布局的宽度和高度为:
√((直径)²/2),约为70%
![square inside a circle](https://istack.dev59.com/m9C7J.gif)
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>
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
而不是传递所需的参数。 - se_bastiaan