Центральная текстовая кнопка 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);
Результат - плохое вертикальное выравнивание.
Ответы
Ответ 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" />
Это сработало для меня