素材: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,做縮放和展開的動畫。