我在android中有一个按钮,我的形状是圆形的。我还有一个xml,它可以改变按下的背景颜色,但是在按下状态改变后颜色会恢复正常。
我对代码进行了以下更改
arg0.setBackgroundColor(getResources()的getColor(R.color.greenText));
但现在背景采用矩形而不是椭圆形。
答案 0 :(得分:2)
好的,因为你说使用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"
来定义自定义按钮。
现在我相信有更多方法可以实现您想要的效果,但我认为这些是您可以使用的一些简单快速的修复方法。希望这会有所帮助。