素材:45度的扇形底图。四张透明的矩形小图标。
iOS coreImages , 基于OpenGL
先将图片绘在CALayer上, 再对CALayer动画。
1.绘制底图和四个小图标到 屏幕下中点(centerX, centerY);
2.对1中的图使用scale动画到原图的0.1(隐藏);
3.绘制expand动画 (针对上述CALayer上的图片)使用CABasicAnimation;
4.动画close。
同时在android上也实现了, 找了半天, 没发现android上有CALayer类似的东西, 所以直接onDraw到了canvas上面。
在对整个绘制好的View做 scale动画。
点击图标时候的按下效果,直接切换按下图标 invalidate重绘。
重点是对 弧形点击区域的计算和 onDraw 时候 根据传入的animationDuration 用postDelayed,做缩放和展开的动画。