Ripple和selectableItemBackgroundBorderless

时间:2015-02-19 22:59:19

标签: android background ripple selectable borderless

我正在使用一个显示正常波纹的按钮,但如果我改为无边框波纹则无效。布局内按钮的位置应该放在哪里,以便始终使用此纹波?它现在位于相对布局和内容图像,按钮和其他东西的其他相对布局之内。

1 个答案:

答案 0 :(得分:1)

我建立了一个让您的问题易于解决的库

https://github.com/xgc1986/RippleViews

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/btn1"
    android:background:"the color of the button that you want, that important for your case"
    android:text="Default android button"/>

然后使用java

View b1 = findViewById(R.id.btn1);

b1.setBackground(RippleDrawableHelper.createRippleDrawable(b1, rippleColor));

这是doc:https://github.com/xgc1986/RippleViews/blob/master/docs/RippleDrawableHelper.md

修改

View b1 = findViewById(R.id.btn1);
// this may work
View v2 = findViewById(R.id.parent); //the are where the ripple effect extends
//change the view you send in the function

b1.setBackground(RippleDrawableHelper.createRippleDrawable(v2, rippleColor));

如果这样可行,是因为它为视图创建了RippleDrawable,但是您可以将此drawable分配给另一个视图,然后当您按下b1视图时,它会显示相对于v2的纹波