Как программно изменить стиль кнопки виджета Android? - PullRequest
2 голосов
/ 07 февраля 2012

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

Ответы [ 2 ]

6 голосов
/ 07 февраля 2012

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

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

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

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

EDIT:

Может быть, вы можете добавить тему xml, очень похожую на эту тему: Как программно установить атрибут стиля в представлении

а затем в нем установить

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

0 голосов
/ 07 февраля 2012

Почему вы думаете, что это так? В качестве примера рассмотрим один из ваших пунктов: установить отступ .

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

...