我需要更改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的默认设置)。
如果可能,我不想重写整个模板。有什么想法吗?
答案 0 :(得分:0)
您的PorterDuff设置为"乘以"。因此,您的新颜色将与开关的基本颜色混合。
Ty使用:
NearSwitch.TrackDrawable.SetColorFilter(color, PorterDuff.Mode.SRC_IN);