Android自定義加載動畫

自定義動畫知識點:

繪制

Invalidate觸發(fā)繪制(刷新)

ValueAnimator屬性動畫

canvas畫布的一些操作:translate(重新映射畫布上的 (0,0) 位置),alpha,scale(縮放當前繪圖至更大或更?。瑀otate(旋轉當前繪圖)


繪制圖前先理清圖像的關系:比如圓的半徑,圓心在屏幕的位置

1、創(chuàng)建動畫的類繼承view,并實現構造函數


2、定義動畫圖像的各種屬性:半徑、間距


要畫圖前首先要確定圖像的位置,大小

可以畫圖像布局示意圖:

大圓半徑為3R,小圓半徑為1R,兩圓間距為0.5R。則可以得出:

布局圖像最大長度minWidth:(2*3R+2*R+0.5R)= 8.5R

布局圖像最大高度minHight:2*3R=6R

圓心位置:屏幕寬度為width,屏幕高度為hight

大圓心所在水平位置Cx:(width-minWidth)/ 2+3R

大圓心所在豎直位置Cy: hight/2

3、通過onSizeChaged獲得對應的尺寸變化

4、onDraw方法進行對應的繪制


使用drawCircle需要:cx,cy,半徑,畫筆

因此需要自己配置畫筆:


實現動畫效果:

duration:動畫的持續(xù)時間

repeatCount:動畫的重復

每次動畫都重新繪制:invalidate()

同理:在創(chuàng)建一個動畫


同時執(zhí)行動畫:animator.playTogether()

啟動動畫和結束動畫:


設置點擊事件:


初始化點擊事件:


并在main_Activity中調用init()即可實現動畫:

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容