Установите ширину кнопки в Android
Как установить фиксированную ширину для кнопки 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>
Как бы я дал ему ширину FIXED?
<Б > UPDATE
Скажем, у меня есть несколько кнопок, которые я хочу иметь одинаковый размер друг с другом и 1/3 всего изображения (Портрет), затем я хочу кнопку с двойной шириной. Затем нажмите кнопку с двойной высотой. Как я мог выполнить это другое, которое вручную их определяло?
Ответы
Ответ 1
Чтобы выполнить то, что вы хотите, вы можете использовать LinearLayout с весом. Например, вы можете установить WeightSum из 9. Если вы поместили вес трех кнопок внутрь по 1 на каждый. Они возьмут 1/3 места, и вы можете поставить 2 для другого объекта. Этот объект будет в два раза больше, чем другой.
http://developer.android.com/reference/android/widget/LinearLayout.html#setWeightSum(float)
Изменить: я хотел бы добавить, что для правильной работы вам необходимо установить ширину или высоту в 0px (в зависимости от горизонтальной или вертикальной компоновки).
Ответ 2
Вместо 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);
чтобы прочитать разрешение экрана, а затем установить размеры кнопок в соответствии с метрикой. widthPixel и metrics.heightPixel
Ответ 3
Используйте minWidth и minHeight, чтобы установить ширину и высоту кнопки.
<Button android:layout_height="wrap_content"
android:id="@+id/Button01"
android:layout_below="@id/output"
android:text="7"
android:minWidth="100dp">
</Button>
Ответ 4
Самый лучший и простой способ установки кнопки динамически -
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));
Итак, например, если вы разместили свою кнопку в TableRow в TableLayout, вы должны иметь ее как TableRow.LayoutParams
index.setLayoutParams(new TableRow.LayoutParams(width, height));
Ответ 5
добавить android:minwidth
строку в этом коде.