我有这个布局:
<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的高度决定其余视图的尺寸......
答案 0 :(得分:0)
试试这个:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioGroup
android:id="@+id/MyTabs"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weig="1" >
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
... />
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
... />
</RadioGroup>
<SquareImageView
android:layout_width="0dp"
android:layout_height="match_parent" />
</LinearLayout>
答案 1 :(得分:0)
您可以尝试以下步骤: 1,设置如下布局:
<RadioGroup
android:id="@+id/MyTabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="1" >
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
... />
<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
... />
</RadioGroup>
<SquareImageView
android:layout_width="0dp"
android:layout_height="match_parent" />
2,一旦视图将方形视图的programatically find the height of linear layout和programatically set the width加载到同一个值,使其成为正方形
3,Find the width of the screen然后将广播组的宽度设置为屏幕宽度与sqaureview宽度之间的差值,以便占用剩余的屏幕宽度。