Я внедрил ColorStateList
на моей пользовательской форме. Кнопка, которая, конечно же, изменит сплошной цвет, когда кнопка нажата и не нажата.Как установить GradiantDrawable.setdColor() ниже API 21?
Он отлично работает на API> = 21, но не на телефонах, которые ниже API 21, поскольку настройка цвета GradiantDrawable установлена для API 21+.
Итак, как я могу архивировать один и тот же эффект для api ниже 21?
Это, как в настоящее время выглядит мой метод:
public void SelectorEffect(View v) {
ColorStateList colorStateList = null;
GradientDrawable gd = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (v.getId() == R.id.login_btn) {
colorStateList = getPressedColorSelector(ContextCompat.getColor(this, R.color.arion_light), ContextCompat.getColor(this, R.color.arion_light2));
gd = (GradientDrawable) getApplicationContext().getResources().getDrawable(R.drawable.arion_buttonshape_login);
} else if (v.getId() == R.id.createAccount_btn) {
colorStateList = getPressedColorSelector(ContextCompat.getColor(this, R.color.arion_blue), ContextCompat.getColor(this, R.color.arion_light2));
gd = (GradientDrawable) getApplicationContext().getResources().getDrawable(R.drawable.arion_buttonshape_create);
}
gd.setColor(colorStateList);
} else {
//Code for phones below API 21:
}
}