android圖片系列 (5) - SVG 補(bǔ)充資料

好了,android 中的 SVG 我們都草草的看了一遍,雖說不會(huì)什么高深的應(yīng)用,但是最起碼我們可以簡單的使用了。這就是基礎(chǔ)啊,各位,基礎(chǔ)最重要,要是這些基礎(chǔ)的 SVG 使用你都不會(huì),那談何去看別人使用 SVG 寫作的高級(jí)效果和應(yīng)用呢,我在學(xué)習(xí)過程中總是碰到這種基礎(chǔ)知識(shí)上的缺失。

好了,關(guān)于 SVG 我們還是有一些東西要補(bǔ)充進(jìn)來的

SVG 輔助工具

很多時(shí)候 uI 不會(huì)提供 SVG 給我們,這就需要我們自己去轉(zhuǎn)換成SVG 啦

  • SVG在線制作網(wǎng)站
    要翻墻

  • vectormagic軟件, 有 window/Mac,可以把位圖轉(zhuǎn)成 SVG矢量圖,Mac 版本的我試了下不花錢總是不成功,window 的沒事,破解也好找,mac 的真頭疼

  • iconfont
    阿里大媽的圖片資源站,里面的圖片可以出 png 和 svg 的,不過都是個(gè)人設(shè)計(jì)的,有些 svg 可能不是標(biāo)準(zhǔn)的 path,也提供字體svg圖片,文章下面有介紹

  • vector Magic
    免費(fèi)次數(shù)有限, PNG 圖片轉(zhuǎn)SVG

  • online-convert
    PNG 圖片轉(zhuǎn)SVG

  • svg2android
    一個(gè)網(wǎng)站直接上傳你的svg圖片就能生成Vectordrawable,android 中使用的不是標(biāo)準(zhǔn) SVG,這個(gè)我們可能需要

  • svg path 解析網(wǎng)站
    很方便的可以查看,提取 svg 圖片中的 path 路徑


animated-selector 矢量選擇器

選擇器 selector 我們使用的很多了,選擇器讓我們可以在控件不同狀態(tài)時(shí)顯示不同的圖片,恩很好,但是還差了點(diǎn)什么。對(duì),就是變化,就是狀態(tài)改變時(shí)的切換動(dòng)畫,結(jié)合 SVG 圖片,SVG 動(dòng)畫,這就誕生了animated-selector 矢量選擇器,可以在狀態(tài)切換時(shí)指定執(zhí)行某一個(gè)矢量動(dòng)畫,幀動(dòng)畫也是可以支持的,具體的看下例子吧,我就不寫了,主要是 path 不會(huì)畫呀...

學(xué)習(xí)例子在這里 Android高級(jí)動(dòng)畫(2)


SVG 的其他實(shí)現(xiàn)

在 android 平臺(tái)上除了google 提供的支持外,我們還可以使用一些第三方工具提取svg 圖片中的 path 路徑,然后把這些 String 的path 路徑轉(zhuǎn)成 canvas 中的 path對(duì)象,就可以直接在canvas 上繪制出來了,另外結(jié)合ObjectAnimator動(dòng)畫還可以實(shí)現(xiàn)自動(dòng)一的 SVG 動(dòng)畫,靈活性比 google 的 AnimatedVectorDrawable 要靈活一些,當(dāng)然簡單性上是比不了的,下面有2個(gè)不過的實(shí)現(xiàn),第一個(gè)很老了,第二個(gè)是國人寫的,很友好,適合大家學(xué)習(xí),這期中的基礎(chǔ)就是 path 繪制了,學(xué)會(huì)后你會(huì)發(fā)現(xiàn)其實(shí)沒什么,但是不學(xué)不研究你就是不會(huì),android 的基礎(chǔ)知識(shí)很重要的,很多應(yīng)用你看著很高大上,其實(shí)研究過后都是對(duì)android基礎(chǔ)知識(shí)的應(yīng)用。

  • path 相關(guān)基礎(chǔ)知識(shí)
    感謝GcsSsloop魔法師給我們提供了如此優(yōu)秀的 canvas 基礎(chǔ)知識(shí)教程,注意這是成體系的基礎(chǔ)教程,非常難得,目前是學(xué)習(xí) canvas 這塊最好的了,沒有之一。講解到位,簡練,提供了不少學(xué)習(xí) demo。

  • pathview 這個(gè)比較老了,而且有的 path 解析有問題。學(xué)習(xí)筆記

  • PathAnimView 這個(gè)很新,還是國人寫的,一直在維護(hù),文檔很友好。是一個(gè)學(xué)習(xí) 自定義 view path 繪制的好文,內(nèi)容包含 path 的逐漸填充,殘影效果。推薦學(xué)習(xí)!

關(guān)于 svg 轉(zhuǎn) path對(duì)象的庫大家可以從第二個(gè)庫里提取,也可以自己去 github 上找


SVG 學(xué)習(xí)例子

  • GoogleClock
    一個(gè)兄弟使用 SVG 寫的數(shù)字變換,使用的 pathData 做的動(dòng)畫,話說我看過之后沒看懂他這2個(gè)關(guān)鍵點(diǎn)對(duì)不上的 path 路徑是怎么做的 pathData 變換動(dòng)畫的,我自己提出path 試了下報(bào)錯(cuò)了,path 轉(zhuǎn)變失敗...哪位看懂了在這里說下啊。


  • SVG_Demo
    使用一個(gè)第三方pathview 在 canvas 上繪制 path,話說這個(gè)只看懂到這了,至于里面那個(gè)畫筆的軌跡動(dòng)作我是沒看懂

SVG資源庫

  • 阿里大媽的 Iconfont 豐富的矢量圖標(biāo)庫,提供矢量圖標(biāo)下載、在線存儲(chǔ)、格式轉(zhuǎn)換等功能。重點(diǎn)是可以把你喜歡的 svg 圖片打包成 ttf 字體,然后在 textview 中使用,當(dāng)然有限制啦,這樣就支持單色啦,看圖
device-2017-07-07-235021.png

因?yàn)槭褂玫氖亲远x打包的字體 ttf,所以可以支持 textview,但是注意字體 SVG 圖片的大小是和字體一樣大的哦

Snip20170708_1.png

大家注意沒有,我本想使用3個(gè)字體 SVG,但是部分 SVG 顯示有問題,我的字體 uicode: "android:text="今天很高興 \ue603,\uf0347,\ue604"", 坑爹的是阿里大媽對(duì)于這\uf3047這樣帶 f 的5為的 uicode 顯示不出來,不知道為啥啊。

好了吐槽了一下大媽,但是阿里大嗎還是很給力的,svg 圖片資源很豐富的,我們不使用 ttf,還可以下載 svg 圖片來使用的嘛


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,301評(píng)論 25 708
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點(diǎn)贊按鈕進(jìn)度條TabLayout圖標(biāo)下拉刷新...
    皇小弟閱讀 46,887評(píng)論 22 665
  • SVG 圖片是一種可支持任意縮放的圖片格式,使用 xml 定義,使用 canvas 中 path 路徑來完成繪制,...
    前行的烏龜閱讀 3,958評(píng)論 1 5
  • 2月15日下午,環(huán)氧每噸上調(diào)500元,價(jià)格為11100元/噸。目前各單體廠家停止報(bào)價(jià)或者已經(jīng)執(zhí)行新價(jià)格。 此次調(diào)價(jià)...
    2edd223567a8閱讀 360評(píng)論 0 0
  • 交完那幾張圖,整個(gè)早上我都趴在桌子上睡覺。不過趴著睡也挺難受的,好幾次都是睡到脖子疼,醒來看看手機(jī),有兩條新信息,...
    Maya7閱讀 269評(píng)論 0 0