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

Центральная текстовая кнопка Android

Мой вопрос очень прост. Как центрировать текст на кнопке в андроиде? Я попытался установить дополнение на 0, гравитация в центр, но результат, когда я запустил его, чтобы текст был горизонтальным, но не вертикальным. Текст немного сдвинут на дно.

<Button
    android:id="@+id/btnSame"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginBottom="10dip"
    android:layout_marginLeft="10dip"
    android:layout_marginRight="10dip"
    android:background="@drawable/layout_button_different"
    android:gravity="center_vertical|center_horizontal"
    android:height="30dp"
    android:padding="0dip"
    android:text="@string/equals"
    android:textColor="@drawable/layout_button_different"
    android:textSize="50dp"
    android:width="70dp" />

Мое также актуально: В своей деятельности я делаю это:

btnEquals.setCompoundDrawablesWithIntrinsicBounds(null,getResources().getDrawable(R.drawable.up2), null, null);
btnEquals.setPadding(0, 5, 0, 0);
btnEquals.setTextSize(15);

Это работает, но после этого я установил это:

btnEquals.setCompoundDrawables(null, null, null, null);
btnEquals.setPadding(0, 0, 0, 0);

Результат - плохое вертикальное выравнивание.

4b9b3361

Ответ 1

Ваш существующий макет не может надеяться центрировать текст из-за выбранных вами размеров. Вы установили высоту кнопки 30dp, а ваш textSize - 50dp, и по какой-либо причине Android не может справиться с этим и сосредоточить текст. Если вы сделаете вашу кнопку крупнее или ваш текст станет меньше, вы увидите, что центрирование работает.

Ответ 2

Это очень легко, вы можете поместить это:

android:textAlignment="center"

Ответ 3

Рассматриваются три системы. Конструктор макетов xml, симулятор и реальный телефон. Текст в кнопке, если вы укажете гравитацию = "центр", будет выглядеть следующим образом. В дизайне макета xml он будет выглядеть так, как левая буква находится в центре кнопки, а остальные буквы справа. (выглядит некорректно) В симуляторе текст хорошо отображается в центре. (верный) В телефоне текст хорошо отображается в центре. (Правильный)

Ответ 4

Вы также можете использовать отрицательные числа в setPadding. Это может помочь, если ваш шрифт большой, а кнопка маленькая. Попробуйте также установить верхнее или нижнее значение на более отрицательное число, если оно все еще находится в центре.

Ответ 5

<Button
                android:id="@+id/AnswerE"
                style="@style/defaultbuttonstyle"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:onClick="AnswerCheck"
                android:text=" E "
                android:textStyle="bold" />

Это сработало для меня