Android自定义Ripple涟漪动画效果

安卓 2.x 的 Ripple 效果怎么搞?嗯,这就挺考验功底了。RippleDrawable是 5.0 之后才有的,在老版本上想实现那个涟漪动画,得靠自己写。这里有个思路清晰、效果还原度也不错的自定义RippleView,手写波纹,兼容低版本,交互反馈灵。

自定义RippleView的核心逻辑,就是自己控制触摸点坐标、半径扩散、颜色过渡这些动画。绘制背景监听触摸控制动画,都在里面搞定。触摸后立刻响应,视觉反馈也挺舒服。

动画部分用的是ValueAnimator,每一帧去动态更新半径,invalidate()强制刷新。你还可以加个addUpdateListener(),一帧帧地画波纹,不输原生。

还有个细节挺贴心——涟漪颜色叠加的方式用的是PorterDuff.Mode.SRC_OVER,渐变感挺自然。你还可以配合setLayerType(View.LAYER_TYPE_HARDWARE, null)开启硬件加速,动画不卡,老机型也能跑。

如果你项目还得兼容安卓老版本,又想加点交互动画,不妨把这个RippleView抽出来用在按钮、卡片、列表项里,通用性也蛮强的。更灵活,样式也好调。

顺便推荐几篇相关的:

如果你在维护老项目,又想用户体验不掉队,这个 Ripple 效果值得你花点时间试试。

zip 文件大小:1.62KB