我有这个布局:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioGroup
android:id="@+id/MyTabs"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton ... />
<RadioButton ... />
</RadioGroup>
<SquareImageView
android:layout_height="match_parent" />
</LinearLayout>
这是 SquareImageView 的代码:
public class SquareImageView extends ImageView {
public SquareImageView(Context context) {
super(context);
}
public SquareImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SquareImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int size = getMeasuredHeight();//Math.min(getMeasuredWidth(), getMeasuredHeight());
setMeasuredDimension(size, size);
}
}
现在,我想要实现的是:
我希望 RadioGroup 占据尽可能多的空间。LinearLayout 的高度应适应 RadioGroup 所需的高度。每个 RadioButton 应该占据 RadioGroup 的 50%。SquareImageView 应该调整它的高度以匹配 LinearLayout 的高度,并且它的宽度也应该调整以使其成为正方形。
这甚至可能吗?
RadioGroup 本身没有问题,但棘手的部分是方形 ImageView,因为我无法让它自动适应它的宽度。它是方形的,但我需要手动设置它的宽度。如果我没有手动设置宽度,它似乎是方形的(在 Eclipse 预览布局管理器中),但它最终会出现在屏幕之外,并且 RadioGroup 占据了整个屏幕宽度。如果我设置的宽度太宽,它的右侧就会出现死角。
尝试摆弄各种设置,但没有什么能完全正确。我想避免以绝对值设置尺寸,而是让 RadioGroup 的高度决定其余视图的尺寸......