Tôi đang cố tạo bố cục tương đối được bao quanh trong vòng tròn nghĩa là bố cục tương đối phải giống như hình vuông được hiển thị trong hình bên dưới.Vẽ bố cục hình vuông bên trong một vòng tròn
Tôi cố gắng để thiết lập chiều rộng và chiều cao của bố trí như sau:
√((diameter)²/2)
đó là khoảng 70%
square inside a circle http://www.yogaflavoredlife.com/wp-content/uploads/2010/09/square-circle.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);
}
}
Những gì tôi nhận được là một bố cục hình chữ nhật thay vì vuông bố cục:
Có ai có thể hướng dẫn tôi nơi tôi đang đi sai không?
mẫu sử dụng:
<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>
tôi thử mã của bạn và tôi đang nhận được một hình vuông, có thể nó đã làm với các quan điểm khác gần đó. –
Tôi đang chụp hình chữ nhật. – Samir
Bạn có thể cung cấp chế độ xem SquareFrameInsideCircle đầy đủ không? Tôi nghĩ rằng điều này có một cái gì đó để làm với chiều cao vuông không phù hợp với chiều cao vòng tròn. Đặc biệt là vì bạn sử dụng 'super.onMeasure (widthMeasureSpec, heightMeasureSpec);' thay vì truyền yêu cầu. –