我想使用Integer Value更改Button颜色。因此,如果我的Integer Value为1,则上升后应为绿色,它应动态更改为黄色,最后应更改为红色。我该如何实现呢?
我尝试使用插值法,但是我无法获得该值,我需要更改其颜色,但是不够精确。
答案 0 :(得分:0)
请告诉我这是否有帮助。
yourButtonName.setBackgroundColor(colorIntVariable);
“ colorIntVariable”是使用rgb方法创建的整数的自选变量名: https://developer.android.com/reference/android/graphics/Color.html#rgb(int,%20int,%20int)
int colorIntVariable = rgb(0,255,0);
以上代码可用于显示绿色对象。
一个例子可以是:
public class MainActivity extends AppCompatActivity {
Button yourButtonName;
Button plusButton;
Button minusButton;
int red;
int green;
int input = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
yourButtonName = findViewById(R.id.button);
plusButton = findViewById(R.id.plusbutton);
minusButton = findViewById(R.id.minusbutton);
plusButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
input = input + 10;
changeButtonColor(input);
}
});
minusButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
input = input - 10;
changeButtonColor(input);
}
});
}
public void changeButtonColor(int inputValue) {
if(inputValue <= 256) {
green = 255;
red = inputValue -1;
}
else {
green = 255 - (inputValue - 256);
red = 255;
}
int colorIntVariable = rgb(red,green,0);
yourButtonName.setBackgroundColor(colorIntVariable);
}
}