Динамическое изменение цвета кнопки с помощью целочисленного значения - PullRequest
1 голос
/ 26 мая 2019

Я хочу изменить цвет кнопки с помощью целочисленного значения. Поэтому, если мое целочисленное значение равно 1, оно должно быть зеленым, когда оно поднимается, оно должно динамически меняться на желтый, а в конце должно меняться на красный. Как я могу это реализовать.

Я пробовал с интерполяцией, но не могу получить значение, мне нужно, чтобы оно меняло цвет, но не очень точно.

1 Ответ

0 голосов
/ 26 мая 2019

Пожалуйста, дайте мне знать, полезно ли это.

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

    }
}
...