Цвет в зависимости от процента - PullRequest
0 голосов
/ 17 июня 2020

Привет, ребята, я делаю полоску здоровья.
Он использует проценты от 100% до 0% для представления здоровья.
Я хочу, чтобы он менял цвет в зависимости от того, сколько здоровья осталось.
100% должно быть зеленым, а 0% должно быть красным.
Есть ли какая-то формула или функция, которую я могу использовать / сделать, чтобы сделать это автоматически ??
Цвета имеют следующий формат: 0xFFRRGGBB

1 Ответ

1 голос
/ 17 июня 2020

Если вам нужен только градиент от зеленого к красному, то примерно так:

// import java.awt.Color;

static Color HealthToColor(double percentage) {
    if (percentage > 1) {
        percentage = 1;
    }
    else if (percentage < 0) {
        percentage = 0;
    }
    int red = (int)(255.0 * (1 - percentage));
    int green = (int)(255.0 * (percentage));
    int blue = 0;
    return new Color(red, green, blue);
}

Если нужно в процентах, очевидно, делите здоровье на 100.

  • HealthToColor (1) // -> java .awt.Color [r = 0, g = 255, b = 0]
  • HealthToColor (0) // -> java .awt.Color [r = 255, g = 0, b = 0]
  • HealthToColor (0.5) // -> java .awt.Color [r = 127, g = 127, b = 0] (это оливковый, а не оранжевый)
  • HealthToColor (0.1) // -> java .awt.Color [r = 229, g = 25, b = 0] (это оранжево-красный)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...