Java 如何以编程方式更改Android小部件按钮的样式?

Java 如何以编程方式更改Android小部件按钮的样式?,java,android,android-widget,android-button,Java,Android,Android Widget,Android Button,我想完全以编程方式更改Android小部件按钮(特别是角落)的样式。也就是说,我希望完全不使用任何xml文件。根据我的研究,我得出结论,这是不可能的。我的结论是正确的还是有人知道怎么做 你认为为什么会这样?以您的一个项目为例,这里有一个方法来解决这个问题 对于角点,可以使用具有圆角形状的可绘制形状。看。关于这一点,StackOverflow上也有很多答案。如果您希望以编程方式执行此操作,则有。您应该查看从TextView和View of按钮继承的方法: setPadding(int left,

我想完全以编程方式更改Android小部件按钮(特别是角落)的样式。也就是说,我希望完全不使用任何xml文件。根据我的研究,我得出结论,这是不可能的。我的结论是正确的还是有人知道怎么做

你认为为什么会这样?以您的一个项目为例,这里有一个方法来解决这个问题


对于角点,可以使用具有圆角形状的可绘制形状。看。关于这一点,StackOverflow上也有很多答案。如果您希望以编程方式执行此操作,则有。

您应该查看从TextView和View of按钮继承的方法:

setPadding(int left, int top, int right, int bottom)
举个例子。。。您还可以更改button对象的layoutparams,这使您可以访问所有通常可访问的xml属性。通常,您可以以编程方式完成xml中可以完成的所有操作

如果这还不够,您可以扩展Button类并重写onDraw方法来更改android绘制按钮的方式

编辑:

也许您可以添加一个xml主题,就像此线程建议的那样:

然后在它的设置

并以编程方式将主题添加到按钮?
我在主题方面没有做太多的工作,所以我无法证明这是否一定会起作用

我把填充作为另一个例子,但我想我不应该这样做,因为我没有对它进行适当的研究。我一直在特别尝试改变这些角落。我正在研究使用setLayoutParams(ViewGroup.LayoutParams-params)。谢谢你的帮助!