Android开关颜色变化

时间:2016-03-24 15:24:16

标签: android colors switch-statement controls

我需要更改Android中Switch控件的默认颜色(我使用的是Xamarin,但它与本机不一样。)

预期的最终模板结果: https://www.google.com/design/spec/components/selection-controls.html#selection-controls-switch

这是Android 5.0中的默认开关控件,但我想在轨道和拇指中将颜色从绿色更改为另一种颜色。

我正在做什么 我发现了一种几乎可以工作的方法,但结果并不是我想要的。方法是:

var color = Color.Rgb(101, 127, 135);
NearSwitch.TrackDrawable.SetColorFilter(color, PorterDuff.Mode.Multiply); 

问题:我无法在曲目中设置确切的颜色。 我设置的颜色是RGB中的#657f87或101,127,135,但是,可能由于PorterDuff模式和轨道模板/透明度,最终颜色不是我设置的颜色。

如果我尝试将PorterDuff模式更改为SRC或其他模式,我可以看到该轨道是一个具有两种不同颜色的矩形,而不是一个带边框的矩形(作为Android的默认设置)。

如果可能,我不想重写整个模板。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您的PorterDuff设置为"乘以"。因此,您的新颜色将与开关的基本颜色混合。

Ty使用:

NearSwitch.TrackDrawable.SetColorFilter(color, PorterDuff.Mode.SRC_IN);