使用整数值动态更改按钮颜色

时间:2019-05-26 13:48:33

标签: android colors interpolation

我想使用Integer Value更改Button颜色。因此,如果我的Integer Value为1,则上升后应为绿色,它应动态更改为黄色,最后应更改为红色。我该如何实现呢?

我尝试使用插值法,但是我无法获得该值,我需要更改其颜色,但是不够精确。

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);

    }
}