Android layout Anko如何更改按钮颜色?

Android layout Anko如何更改按钮颜色?,android-layout,button,android-button,anko,Android Layout,Button,Android Button,Anko,我正在尝试更改线性布局中按钮的颜色: class MoodActivityUI : AnkoComponent<MoodActivity> { override fun createView(ui: AnkoContext<MoodActivity>) = with(ui) { frameLayout { verticalLayout { linearLayout { button("3")

我正在尝试更改线性布局中按钮的颜色:

class MoodActivityUI : AnkoComponent<MoodActivity> {
override fun createView(ui: AnkoContext<MoodActivity>) = with(ui) {
    frameLayout {
        verticalLayout {

            linearLayout {
                button("3"){
                    setBackgroundColor(Color.parseColor("red"))
                }.lparams{
                    width = dip(53)
                    height = dip(53)
                    leftMargin=dip(6)
                }

                button("2"){
                }.lparams{
                    width = dip(53)
                    height = dip(53)}

                button("1"){
                }.lparams{
                    width = dip(53)
                    height = dip(53)}
                ...
类MoodActivityUI:AnkoComponent{
覆盖趣味createView(ui:AnkoContext)=使用(ui){
框架布局{
垂直布局{
线性布局{
按钮(“3”){
setBackgroundColor(Color.parseColor(“红色”))
}.lparams{
宽度=倾角(53)
高度=倾角(53)
左边距=倾角(6)
}
按钮(“2”){
}.lparams{
宽度=倾角(53)
高度=倾角(53)}
按钮(“1”){
}.lparams{
宽度=倾角(53)
高度=倾角(53)}
...
结果是这样的:

themedButton("3", theme = R.style.MyButtonStyle) {
    }.lparams {
        width = dip(53)
        height = dip(53)
        leftMargin = dip(6)
    }

为什么它会超出按钮形状的边界? 如何更改按钮颜色?

您可以使用“主题按钮”而不是“按钮”,如下所示:

themedButton("3", theme = R.style.MyButtonStyle) {
    }.lparams {
        width = dip(53)
        height = dip(53)
        leftMargin = dip(6)
    }
和styles.xml中的样式

<style name="MyButtonStyle" parent="Widget.AppCompat.Button">
    <item name="android:colorButtonNormal">#f00</item>
</style>

#f00

button(“-3”){background=ResourcesCompat.getDrawable(参考资料,R.drawable.minus_3_button,null)…您的解决方案与此有什么区别?background=blah blahh完全替换了button的背景,不再是带圆角的灰色矩形(如上图所示)。但我的建议只是对按钮的背景进行着色。