android5.0中,新出了一个控件RippleView,可以实现点击水波纹效果,这个效果看起来十分酷炫,只不过只支持在5.0之上的版本中使用,想要向下兼容,就必须自己想办法了;
自己在网上找了一些资料自己在研究了一下,其实要实现这个效果,本质上就是在控件上面绘制一层颜色,这个很实现就是很简单的绘制,但是总不能每个控件,button,textView等都要自己定义吧,这个样子实在太麻烦了,在翻看了一些文章之后,我决定从LinearLayout入手,只要找到控件所在位置,然后绘制一个水波纹就行了,先上效果图:
好了,接下来就是关键代码:
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//down事件中,开始绘制
isDraw = true;
currentRadio = 0;
//点击的位置,也是水波纹的圆心
int downX = (int) event.getRawX();
int downY = (int) event.getRawY();
centerX = downX;
centerY = downY;