看到android 5.0有一个按钮点击效果非常棒,先来看效果图:
但是这种效果只能在5.0的系统上有效果,如何在低版本上实现呢?
这种效果网上也有人实现了,
blog 地址http://blog.csdn.net/singwhatiwanna/article/details/42614953
ok,直接进入主题,
要实现这种动画效果也不难,原理可以用一句话概括:就是,在我们按下view的时候,从按下的位置开始绘制圆,圆的半径一直增大,直至把View全部覆盖掉。
通过实现原理我们可以分析出,要实现这种效果,需要重写onDraw方法,onTouchEvent方法,如果有必要还需要通过onMeasure方法来获取View的size
1、onDraw方法,就是不断的绘制圆,这里需要循环调用,
2、onTouchEvent方法:通过MotionEvent.ACTION_DOWN和MotionEvent.ACTION_UP做相应的操作并触发onDraw方法
3、onMeasure计算View的size,通过size加上MotionEvent.ACTION_DOWN起始点计算出圆的最大半径
代码实现:
保存view的大小,用于计算绘制 圆的最大半径
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
mRect.set(0, 0, getMeasuredWidth(), getMeasuredHeight());
}
手指按下view的时候,计算按下点的位置,并触