我需要按钮的涟漪效果。目前我在棒棒糖中使用波纹背景,在v21目录中使用xml向上设备,它工作正常,但我还需要为棒棒糖前设备提供连锁效果。
我使用了一些自定义库来获取棒棒糖前设备的连锁效果。例如,我按照how to create ripple effect for pre-lollipop使用了com.balysv:material-ripple:1.0.2
库。在那里,他们使用this library,它使用自定义视图来包装按钮。
因此,当我将它用于棒棒糖前曲线形状的按钮时,结果将是这样的......
正如您所看到的,涟漪效应超出按钮笔划边界的一侧。有没有办法解决这个问题?
另外,有没有办法使用Android的默认支持库获取涟漪效应,而不是使用自定义第三方库来预制棒棒糖设备?
答案 0 :(得分:0)
没有。您没有使用支持库在pre-lollipop上选择涟漪效果。您可以使用this库 - 易于使用。检查操作系统,然后如果你不喜欢这样就实现涟漪。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// set layout background as ripple_drawable
} else {
// Implement the 3rd party library
}
答案 1 :(得分:0)
使用https://github.com/ozodrukh/RippleDrawable。
ripple.xml
<ripple xmlns:android="htp://schemas.android.com/apk/res/android"
android:color="yourRippleColor">
<!-- style for ripple -->
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<corners android:radius="yourButtonCornerRadius"/>
<solid android:color="#FF00FF"/>
</shape>
</item>
<!-- background -->
<item android:drawable="yourBackgroundForButton" />
</ripple>
Activity.java
Button bu=...;
bu.setBackground(LollipopDrawablesCompat.getDrawable(getResources(),R.drawable.ripple,getTheme());
bu.setOnTouchListener(new DrawableHotspotTouch((LollipopDrawable)bu.getBackground()));
在Samsung Galaxy Advance Duos,Android 4.4.2(api 19,KitKat)上进行了测试