2012-02-07 6 views
2

Я хочу изменить стиль кнопки виджета Android (в частности, углов) полностью программно. Значит, я хотел бы сделать это без каких-либо xml-файлов. Из моих исследований я прихожу к выводу, что это невозможно. Является ли мое заключение правильным или кто-то знает, как это можно сделать?Как изменить стиль кнопки виджета Android программно?

ответ

0

Почему, на ваш взгляд, это так? В качестве примера возьмем один из ваших предметов, вот способ: set padding.

Для углов вы можете использовать выталкиваемую форму с закругленными углами. См. documentation for drawables. Есть также много questions (с ответами) на StackOverflow об этом тоже. Если вы хотите сделать это программно, то есть RoundedRectShape.

6

Вы должны смотреть на унаследованные методы из TextView и Вид кнопки:

setPadding(int left, int top, int right, int bottom) 

назвать один ... Вы можете также изменить layoutparams на кнопку объекта, который дает доступ ко всем XML атрибуты обычно доступны. В общем, вы можете делать все программно, что вы можете сделать в xml.

Если этого недостаточно, вы можете расширить класс Button и переопределить метод OnDraw, чтобы изменить то, как андроид рисует ваша кнопка

EDIT:

Может быть, вы можете добавить тему XML так же, как эту тему предлагает: How to programmatically setting style attribute in a view

, а затем в нем установлен

и добавить тему программно кнопку? Я не очень много работал с темами, поэтому я не могу подтвердить, будет ли это определенно работать

+0

Я положил прописку как еще один пример, но, я думаю, мне не следовало бы с тех пор, как я не сделал правильного исследования в теме. Я специально пытался изменить углы. Я изучаю использование setLayoutParams (параметры ViewGroup.LayoutParams). Спасибо за вашу помощь! – kfeeney

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