Przechodzenie koloru na podstawie wartości 0 - 100

Przechodzenie koloru na podstawie wartości 0 - 100
Meeki
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Żukowo
  • Postów: 45
0

Witam.
Potrzebuje zrobić suwak który będzie zmieniał kolor na podstawie wartości od 0 do 100.
Chodzi mi o taką płynną zmianę koloru od żółtego do czerwonego.
Pewnie jest to gdzieś ładnie opisane w internecie tylko nie wiem jak to się poprawnie nazywa.
Próbowałem to robić za pomocą takiej funkcji ale jak się można domyśleć, działa to bardzo słabo.

Kopiuj
Long.parseLong(value+"F4A4C61",16);

Potrafi ktoś pomóc ?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Nie możesz po prostu dodawać wartości do całego koloru, ponieważ nie jest to zmiana proporcjonalna.
Musiałbyś liczyć proporcjonalnie dla każdego kanału (R, G, B) - fachowo nazywa się to gradient.

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
1

Zakładam, że kolor żółty to (255,255,0), a czerwony to (255,0,0).

Kopiuj
color = new Color(255,(int)255*(100 - suwak)/100,0);

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.