Androidボタンに固定幅を設定するにはどうすればよいですか?固定幅を設定しようとするたびに、現在の親(RelativeView)を埋めます。XMLは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout Android:id="@+id/relativelayout" Android:layout_width="fill_parent" Android:layout_height="fill_parent" xmlns:Android="http://schemas.Android.com/apk/res/Android">
<EditText Android:layout_height="wrap_content" Android:editable="false" Android:layout_width="fill_parent" Android:id="@+id/output"></EditText>
<Button Android:layout_height="wrap_content" Android:id="@+id/Button01" Android:layout_below="@id/output" Android:text="7" Android:layout_width="wrap_content"></Button>
<Button Android:layout_below="@id/output" Android:layout_height="wrap_content" Android:layout_width="wrap_content" Android:id="@+id/Button02" Android:layout_toRightOf="@+id/Button01" Android:text="8"></Button>
<Button Android:layout_below="@id/output" Android:layout_height="wrap_content" Android:layout_width="wrap_content" Android:id="@+id/Button03" Android:layout_toRightOf="@+id/Button02" Android:text="9"></Button>
</RelativeLayout>
固定幅をどのように設定しますか?
更新
互いに同じサイズで、ビュー全体の1/3(ポートレート)が必要なボタンがいくつかあるとします。次に、幅が2倍のボタンが必要です。次に、2倍の高さのボタン。手動でサイズ変更するこの他の方法をどのように実現できますか?
目的を達成するには、LinearLayoutとweightsumを使用できます。たとえば、WeightSumを9に設定できます。3つのボタンの重さをそれぞれ1つに設定した場合。それらは場所の1/3を占め、別のオブジェクトに2を置くことができます。このオブジェクトは、他のオブジェクトの2倍の大きさになります。
http://developer.Android.com/reference/Android/widget/LinearLayout.html#setWeightSum(float)
編集:これが正しく動作するように追加したいので、幅または高さを0pxに設定する必要があります(水平レイアウトか垂直レイアウトかに応じて)。
_Android:layout_width="wrap_content"
_の代わりに、たとえば_Android:layout_width="20px"
_のような固定ピクセルサイズを使用するか、より良い方法:_Android:layout_width="20dp"
_
コードで幅をプログラムで設定することもできます:Button.setWidth(int width)
アップデートについて:
それが良い解決策かどうかはわかりませんが、私は働いています。使用できます
_ DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
_
画面の解像度を読み取り、metrics.widthPixelおよびmetrics.heightPixelに従ってボタンのサイズを設定します
MinWidthとminHeightを使用して、ボタンの幅と高さを設定します。
<Button Android:layout_height="wrap_content"
Android:id="@+id/Button01"
Android:layout_below="@id/output"
Android:text="7"
Android:minWidth="100dp">
</Button>
ボタンを動的に設定する最良かつ最も簡単な方法は
Button index=new Button(this);
int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 45, getResources().getDisplayMetrics());
int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 42, getResources().getDisplayMetrics());
ピクセル単位の高さと幅px。 45はdpの高さで、42はdpの幅です。
index.setLayoutParams(new <Parent>.LayoutParams(width, height));
そのため、たとえば、TableLayout内のTableRow内にボタンを配置した場合、TableRow.LayoutParamsとして持つ必要があります。
index.setLayoutParams(new TableRow.LayoutParams(width, height));
追加 Android:minwidth
そのコードの行。