1

我想要不同颜色的按钮,但我想在使用默认按钮背景资源时这样做,以保留 onfocus 和 onclick 状态。这是因为我想为我的应用程序使用操作系统的默认突出显示颜色,它并不总是橙色(HTC Sense 将其设为绿色)。

我发现向按钮的背景可绘制对象添加颜色过滤器效果很好(在本例中为蓝色):

myButton.getBackground().setColorFilter(Color.parseColor(this.getString (R.color.button_blue)), Mode.MULTIPLY);

但是,当按钮被聚焦或单击时,它会变成令人讨厌的 orange_blue,因为它将颜色过滤器与背景可绘制对象的橙色混合在一起。

我只想为默认按钮的 statelistdrawable 中未聚焦/未单击的九个补丁可绘制对象设置此颜色过滤器。我不知道该怎么做。

我在这里看到了类似的解决方案: 固定:“Android:检测焦点/按下颜色” ...

但是我对该解决方案有些担心,主要是如果操作系统更改了默认按钮的图形怎么办?由于正常的未聚焦/未按下图形现在已硬编码到应用程序中,因此会中断流程。

也许有人可以评论将默认图形硬编码到应用程序中是好是坏?操作系统完全改变图形的可能性有多大?

请问有什么帮助吗?非常感谢!!

4

0 回答 0