I ended up using something else
boolean good = false;
double percentage = getPercentage((int) temp);
int screenHeight = getScreenHeight();
int pos1 = 0, pos2 = 0;
Integer[] firstColor = new Integer[]{0, 155, 255}, secondColor = new Integer[]{255, 152, 0};
if (percentage <= 0) {
firstColor = new Integer[]{0, 155, 255};
secondColor = new Integer[]{163, 235, 255};
pos1 = 0;
pos2 = 50;
good = true;
}
if (percentage <= 50 && !good) {
firstColor = new Integer[]{0, 155, 255};
secondColor = new Integer[]{163, 235, 255};
pos1 = 0;
pos2 = 50;
good = true;
}
if (percentage <= 100 && !good) {
firstColor = new Integer[]{163, 235, 255};
secondColor = new Integer[]{255, 152, 0};
pos1 = 50;
pos2 = 100;
}
int firstColor_X = screenHeight * (pos1 / 100);
int secondColor_X = (int) (screenHeight * ((double) pos2 / 100) - firstColor_X);
double slider_X = (screenHeight * (percentage / 100) - firstColor_X);
double ratio = slider_X / secondColor_X;
ArrayList<Integer> result = hexColor(secondColor, firstColor, ratio);
int red = result.get(0);
int green = result.get(1);
int blue = result.get(2);
background.setBackgroundColor(Color.rgb(red, green, blue));