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