私はこのレイアウトを持っています:
<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 の高さによって残りのビューの寸法を決定したいと思います...