从Appcompat 22.2.0开始,如何以编程的方式更改浮动操作按钮的颜色。

29
我想知道如何从Support库22.2.0更改浮动操作按钮的颜色? 我已经尝试过。
button.setBackgroundColor(color);

但是显然,这会改变按钮的可绘制性并将其变成正方形。

现在我想知道如何只更改颜色而不触及形状?

谢谢提前。


这里是答案 - IgniteCoders
14个回答

1
XML背景:色调颜色将始终覆盖您在程序中给出的任何颜色。因此,要在程序中给出颜色,请从XML文件中删除android:backgroundTint="#96989A"行,并使用以下内容:
button.setBackgroundTintList(getResources().getColorStateList(R.color.yourColor));

0
在 Kotlin 中,可以这样写:
binding.fAB.iconTint= ColorStateList.valueOf(Color.parseColor("#3F51B5"))

其中binding是根视图,iconTint来自扩展FAB


0
有时候你会在颜色文件中找到你需要使用的颜色。 你可以使用以下代码:
fab.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor(getString(R.color.youcolor))));

如您所知,要通过编程方式更改它,您需要使用 setBackgroundTintList(),然后传递所需的 ColorStateList.valueOf(),这需要一个特定的int并将其解析...
注意:如果您直接使用int颜色,有时可能会出现问题,因此我不建议像那样使用它。
然后在 ColorStateList.valueOf() 中放置 Color.parseColor(),这是您需要放置的内容...
这需要一个字符串,但是 您已经在颜色文件中有int颜色,该怎么办?Color.parseColor() 中传递 getString(),这是每个活动都拥有的方法,因此在 getString() 中,最终将您的颜色作为这个放置:R.color.yourcolor

-1

只需在浮动操作按钮下的xml文件中使用此行

android:backgroundTint="#96989A"

那不是“以编程方式”。 - straya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接