來繼續學習SVG,要想深刻了解仍是要多動手進行實戰。關於svg基礎能夠去看一下個人上一篇文章《SVG前戲—讓你的View多姿多彩》,今天就用SVG打造一個精美的UI效果。java
先上效果圖:android
咱們都知道SVG的文件是純粹的 XML。如:git
[圖片上傳中...(12345.gif-60d52c-1533723732988-0)]程序員
看到這裏,咱們都明白了。原來裏面相似以path的數據進行組裝的。只須要進行解析xml就能夠了。github
解析關鍵代碼:面試
關鍵點:仍是在於UI繪製的時候,把解析到的數據進行分片繪製。這裏用是path和region互相結合的一個算法。另外剛開始解析數據的時候,我開起了線程池進行繪製刷新的。詳細可參考demo!算法
大寫表明絕對位置, 小寫表明相對位置。svg
SVG裏面還有各類標籤:學習
包括line直線,circle圓,rect矩形,eliipse橢圓,polygon多邊形,等等 這些只要咱們又一個SVG文件,均可以將其轉換成java代碼ui
地圖項目地址:
https://github.com/androidstarjack/MySvgYuyahaoDrawChinaMap
備註:該demo僅爲學習Android提供思路用,我很愛國的!
做爲一個程序員,咱們固然不能手動去作這個工做,那就涉及兩個問題,一個是SVG的解析,一個是解析後的繪製。雖然有人已經完成了這個工做,但我以爲仍是本身動手敲一遍爲好!任什麼時候候不要太過於依賴第三方的。
歡迎關注我公衆號:終端研發部,在這裏得到的不單單是技術!