更改圆形按钮android的背景颜色

Posted

技术标签:

【中文标题】更改圆形按钮android的背景颜色【英文标题】:Change background color of circular button android 【发布时间】:2014-11-05 20:45:26 【问题描述】:

我在 android 中有一个按钮,我把它做成圆形。我还有一个 xml,它会在按下时更改背景颜色,但在按下状态更改后颜色会恢复正常。

我对代码进行了以下更改

arg0.setBackgroundColor(getResources().getColor(R.color.greenText));

但现在背景是矩形而不是椭圆形。

【问题讨论】:

使用按下的颜色创建一个可绘制的新形状,并将背景设置为该形状。 感谢 dcharms 的想法 【参考方案1】:

好的,正如你所说,使用setBackgroundColor 时背景形状会发生变化,我想这就是你想要的,

1.您可能对这样的滤色镜感兴趣

Button btn = (Button) findViewById(R.id.button1);
btn.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0xFFAA0000));

你可以根据你需要的颜色使用不同的值。如果你想知道颜色的常数值,你可以参考the documents。

2.您可以使用 PorterDuff 乘法模式以编程方式设置整个按钮的阴影。这将改变按钮颜色而不仅仅是色调。

例如红色阴影按钮

btn.getBackground().setColorFilter(0xFFFF0000, PorterDuff.Mode.MULTIPLY);

绿色阴影按钮

btn.getBackground().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);

等等。它实际上是通过将当前按钮颜色值乘以您的颜色值来工作的。

3.您也可以使用this Android Button Maker等在线工具来自定义您的按钮,并在您的布局中(标签内)使用android:background="@drawable/custom_btn"来定义自定义按钮。

现在我相信有更多方法可以实现您想要的,但我认为这些是您可以使用的一些简单快捷的修复方法。希望这会有所帮助。

【讨论】:

我用new LightingColorFilter(0xFF000000, 0xFFAA0000)替换颜色

以上是关于更改圆形按钮android的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

Android:更改按钮文本和背景颜色

Android:更改背景颜色查看 onClick 按钮

如何在android中更改背景时保持按钮颜色相同

在 Android Studio 中按住时如何更改按钮的背景颜色?

如何动态更改 TextView 背景颜色?

按下Android设置背景颜色按钮