Ripples ——波纹效果
Material风格的元素以一种波纹(ripple)扩散的方式响应用户的触摸。如果你使用了Theme.Material或者其派生的主题(该主题需在sdk-21进行添加),那么交互性控件比如Button默认就会拥有这种效果。
values-21包下styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="android:ThemeOverlay.Material.Dark">
</style>
</resources>
你也可以在你的drawable上使用这种效果——只要把它们放到ripple元素里,如下:
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/accent_dark"> <item> <shape android:shape="oval"> <solid android:color="?android:colorAccent" /> </shape> </item> </ripple>
自定义view通过View#drawableHotspotChanged回调方法将点击位置传递过去,以便从点击的位置发起ripple效果。