标签:
https://github.com/traex/RippleEffect
http://www.cnblogs.com/tiantianbyconan/p/4116304.html
在初始化的时候,animationRunning值已被置为true,主要是为了保证一次完整地波纹效果不会被打断。首先执行canvasHandler.postDelayed(runnable, frameRate);每隔frameRate的时间,执行一次invalidate()。 canvas.save()用来保存Canvas的状态,注意在绘制结束的时候调用了canvas.restore(),成对使用。然后就开始绘制波纹了,每次的半径增量为(radiusMax * (((float) 1 * frameRate) / rippleDuration),每隔rameRate绘制一次。rippleType == 1的时候,保证在绘制到一定的时候,setAlpha的值加深,形成两次涟漪,否则setAlpha值就一直递减,波纹越大效果越弱。最后当rippleDuration <= timer * frameRate的时候,就return了,RippleEffect波纹效果结束。
最后在XML中直接拿来用就可以了:
标签:
原文地址:http://www.cnblogs.com/zrui513/p/4966695.html