2016-03-24 4 views
0

Мне нужно изменить цвета по умолчанию для управления коммутатором в Android (я использую Xamarin, но он не должен отличаться от обычного).Изменение цвета переключателя Android

Ожидаемый конечный результат шаблона: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); 

Проблема: Я не могу установить точный цвет в треке. Цвет, который я устанавливаю, - # 657f87 или 101, 127, 135 в RGB, но, вероятно, из-за режима PorterDuff и шаблона/прозрачности дорожки, последний цвет не тот, который я установил.

Если я пытаюсь изменить режим PorterDuff на SRC или какой-либо другой, я вижу, что трек представляет собой прямоугольник с двумя разными цветами вместо одного с границами (по умолчанию от Android).

Я не хочу переписывать весь шаблон, если это возможно. Есть идеи?

ответ

0

Ваш PorterDuff ist установлен на «Multiply». Поэтому ваш новый цвет станет смешанным с основным цветом переключателя.

Ти с помощью:

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

Это создает еще один цвет (# bac5c9 или 186, 197, 201 в RGB), который до сих пор не правильно. – xTuMiOx

Смежные вопросы