2014-01-14 3 views
0

я меняюсь мои кнопки backgroundDrawable programaticaly:Кнопки текст не выровнен больше после изменения BackgroundDrawable

myButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.card_button_blue)); 

После изменения фона, текст в кнопке не выровнен больше, как это было прежде, чем изменить фон.

buttons before and after changing its background http://upload.dsliga.eu/upload/buttons.jpg

целевой SDK версии 10. Спасибо.

+0

Вы используете 9patch для Drawable? или обычный файл PNG? –

+0

Я использую 9patch PNG. – Dusan

ответ

1

Похоже, что метод setText() испортил выравнивание. После изменения текста, повторное применение силы тяжести и отступы сделал работу:

myButton.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL); 
myButton.setPadding(12, 12, 12, 12); 
+0

Все еще не удовлетворены на 100%. Это решает выравнивание текста в кнопке, но кнопки растягиваются. У меня есть 12 кнопок в макете таблицы, но после изменения BackgroundDrawable кнопки в строках не одинаковы. Некоторые из них короче других. – Dusan

0

Поскольку вы используете 9patch, вам нужно указать с нижней и правой боковой линии, где данные внутри вашего рисунка, вы, вероятно, не нарисовать полную строку в нижней части, и правая сторона 9patch рисунок

поэтому текст внутри кнопки заканчивалось по центру, потому что границы в 9patch нЕ то, что вы думаете, что они

ваш 9patch должен (обычно) оставить только 1 пиксель в верхней и нижней частях правой боковой линии и 1 пиксель слева и справа от t он нижняя строка

перерисовывать 9patch, удалите тяжести и отступы код, и посмотреть, если он работает

смотрите ниже изображений

enter image description here

+0

Просто добавил две дополнительные черные линии (у меня были только линии сверху и слева), но это не решило проблему. Мой текст в кнопке не выравнивается правильно. Мне пришлось вернуть код тяжести и дополнения. – Dusan

+0

показать мне ваш файл 9patch –

+0

[9patch image] (http://upload.dsliga.eu/upload/card_blue.9.png) – Dusan

Смежные вопросы