Подтвердить что ты не робот

Как создать действительно маленькие кнопки в android из кода?

Клавиатура Android по умолчанию представляет собой действительно большую кнопку.

button with caption "Save"

Существует много свободного пространства. Теперь я хочу создать действительно маленькие кнопки, которые немного больше, чем текст/подпись. Как это сделать из кода? До сих пор я нашел следующий метод, но он по-прежнему предоставляет слишком большие кнопки и тратит слишком много места:

а. Создайте XML (smallbutton.xml) в res/layout:

<?xml version="1.0" encoding="utf-8"?>

    style="?android:attr/buttonStyleSmall"
    android:text="color"
    android:padding="0dp"
    android:layout_margin="0dp"

    android:textSize="8dp"
    android:maxHeight="2dp"
    android:maxWidth="2dp"

/>

В. Из вашего кода надуйте это и добавьте в представление:

Button pickBackColor = (Button) this.getLayoutInflater().inflate(R.layout.smalbutton,null);

...

LinearLayout linLayout = new LinearLayout(this);

linLayout.addView(pickBackColor);

Теперь проблема в том, что кнопка все еще слишком велика, она использует слишком много места вокруг (слева, справа, выше, внизу) текста.

enter image description here

Какой-нибудь намек на то, как уменьшить размер кнопки?

4b9b3361

Ответ 1

Кнопки имеют минимальную высоту и ширину (обычно 48dp соответственно 64dp по умолчанию). Поэтому добавьте

android:minHeight="0dp"
android:minWidth="0dp"

чтобы получить действительно маленькие кнопки:

enter image description here

Ответ 2

Для вашей информации есть также стиль по умолчанию, предоставляемый Android, который определяет меньшие кнопки:

style="?android:attr/buttonStyleSmall"

Вы также можете при необходимости изменить этот стиль по умолчанию и определить пользовательские атрибуты в файле styles.xml. Вот пример с изменениями, описанными в вопросе:

<style name="MyButtonStyleSmall" parent="android:Widget.Button.Small">
    <!-- Customizations  -->
    <item name="android:minHeight">0dp</item>
    <item name="android:minWidth">0dp</item>
</style>

Тогда вам просто нужно вызвать его в XML:

<Button 
   android:id="@+id/small_button"
   android:text="@string/example"
   android:contentDescription="@string/example_desc"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   style="@style/MyButtonStyleSmall" />

Ответ 3

в .xml файле... вам нужно передать небольшое значение в layout_height и layout_width в xml файле... попробуйте это.

android:layout_width="50dp" android:layout_height="50dp"  

Измените значение согласно вашему требованию...

Ответ 4

попробуйте это в своем коде:

pickBackColor.setWidth(VALUE);
pickBackColor.setHeight(VALUE);