selectableItemBackground изменение цвета для версий перед леденцом на палочке

Для Lollipop цвет пульсации можно просто изменить, используя colorControlHighlight, Но для pre-Lollipop (?attr/selectableItemBackground

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);
    }
Другие вопросы по тегам