更改圆形按钮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的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章