【问题标题】:How to change the style of an Android widget button programmatically?如何以编程方式更改 Android 小部件按钮的样式?
【发布时间】:2012-02-29 05:03:53
【问题描述】:

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

【问题讨论】:

    标签: java android android-widget android-button


    【解决方案1】:

    你应该看看从TextView和Button的View继承的方法:

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

    举个例子...您还可以更改按钮对象的布局参数,这使您可以访问通常可访问的所有 xml 属性。一般来说,您可以通过编程方式完成所有可以在 xml 中执行的操作。

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

    编辑:

    也许你可以像这个线程建议的那样添加一个 xml 主题:How to programmatically setting style attribute in a view

    然后在里面设置

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

    【讨论】:

    • 我把填充作为另一个例子,但我想我不应该这样做,因为我没有对它进行适当的研究。我一直在专门尝试改变角落。我正在研究使用 setLayoutParams(ViewGroup.LayoutParams params)。感谢您的帮助!
    【解决方案2】:

    您认为为什么会这样?以你的一件物品为例,这里有一个set padding的方法。

    对于角,您可以使用带有圆角形状的可绘制对象。请参阅documentation for drawables。 StackOverflow 上也有很多 questions(有答案)关于这个。如果您想以编程方式执行此操作,请使用 RoundedRectShape

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      • 2019-05-28
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多