selectableItemBackground изменение цвета для версий перед леденцом на палочке
Для Lollipop цвет пульсации можно просто изменить, используя colorControlHighlight
, Но для pre-Lollipop (
2 ответа
Вы можете просто использовать это:
<item name="colorControlHighlight">@color/yourColor</item>
Изменить: теперь это возможно с помощью AppCompat и backgroundTint
backgroundTint="@color/yourColor"
Предыдущее решение:
Не уверен, что это то, что вы хотите, но я закончил делать это программно:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ColorStateList colors = new ColorStateList(new int[][]{
new int[]{android.R.attr.state_enabled},
}, new int[]{pressed});
GradientDrawable item = new GradientDrawable();
item.setCornerRadius(radius);
item.setColor(normal);
RippleDrawable ripple = new RippleDrawable(colors, item, null);
button.setBackgroundDrawable(ripple);
} else {
StateListDrawable stateListDrawable = new StateListDrawable();
GradientDrawable item;
item = new GradientDrawable();
item.setCornerRadius(radius);
item.setColor(pressed);
stateListDrawable.addState(new int[]{android.R.attr.state_enabled, android.R.attr.state_pressed}, item);
item = new GradientDrawable();
item.setCornerRadius(radius);
item.setColor(normal);
stateListDrawable.addState(new int[]{android.R.attr.state_enabled}, item);
button.setBackgroundDrawable(stateListDrawable);
}