這兩天學習了下 svg 在專案中的使用,學到了以前很多不知道東西,在這裡打算以問答的形式作個總結。
專案中使用 svg 的好處?svg總結起來用兩個優點,首先最主要的放大不會失真,其次相對同樣的圖示.png,圖示.svg 位元組更小。所以應用到專案中意義就非常明顯,放大不會失真,那麼針對 android 端的適配就好處多多了,不用準備多套 圖示資源 ,可以減少 apk 的大小。
將他們在 xml 中使用,上面的是 .png 圖示,下面是 .svg 檔案圖示。
執行出來後,可以稍微看出來,下面的 svg 應該更清楚,現在將它們都放大。
兩者的效果區別有多大很明顯可以看出來,上面的 .png 已經非常模糊了。 然後兩者的大小,其實只是一張 .png 和 .svg 相比較,他們的位元組數量差不多。
在專案中使用的 svg 有幾種?svg 有兩種,一種是靜態的就上面所示,還有種是帶動畫的,比較經典是 google 規範的 ******* 的選單圖示,有旋轉效果。帶動畫的 svg 實現方法即是通過 android5.0 以後提供的 api animatedvectordrawable 實現的。通過 animatedvectordrawable 連線靜態的 vectordrawable 和動態的 objectanimator 。
svg 怎樣在 android studio 專案中使用?有了 .svg 檔案後,在 android studio 中 res -- > 右鍵 new --> vector assect
在這個介面 有三點要注意的,分別標紅的 1 2 3
3 最重要的,需要將它勾上,並且 將左邊的 size 設定稍微大點,100 或者 200,因為我測試了下比較搞笑的是,如果勾上用它提供本身的大小,結果在控制項上載入使用後,將寬高設定成比較大 100dp 或者 200dp後,竟然會模糊,所以我猜測這個 size 設定的是圖示支援的最大值。並且最為重要的是修改大的尺寸並不會增加生成出來 .xml 檔案的位元組數。
svg 從**來?如果看了有關 svg 的基本知識,我們都知道可以通過在 xml 檔案中畫出這個圖示,比如將上面的圖示 xml 檔案開啟也可以看到
簡單圖表的xml檔案我們能看懂部分屬性, width height path 等等,但是稍微複雜我們就畫不出了,並且都很難看懂,所以這部分並不是我們前端負責,一般專案中只要不是非常複雜的圖示可以從 ui 獲取,他們有工具可以匯出 .svg 檔案,我們只負責使用,當然也可以簡單的修改 width height color 等等,但是真正能做的並不多。
svg 在 5.0 以下的使用?很多部落格都說 svg 在 5.0 以下不能使用,並且需要配置 google 提供的方法配置 gradle 才可以使用,不然會崩潰。理由當然是前面說 google 提供的 api 是 5.0 以後才提供的。其實是可以的,比如我這裡的系統版本就是 4.4 ,一樣沒問題,測試了發現,如果不使用帶動畫的 svg 就沒問題,如果靜態的 svg ,在 5.0 前後都可以使用,這點比較重要,可以根據自己的情況來是否要配置 gradle 。
好的 有關 svg 在專案中使用總結差不多就這些,都是非常實用,直接針對專案開發的。
十萬個為什麼
目錄 import sys import some module noqa答案 將 noqa新增到一行表示linter 乙個自動檢查 質量的程式 不應該檢查此行.可能生成的任何警告都將被忽略。那條線可能有一些 看起來很糟糕 的東西,但開發商理解並打算出於某種原因它在那裡 有關更多資訊,請參閱flak...
十萬個為什麼 亂序(二)
為什麼注意力會被消弱?注意會如同肌肉一般,在集中注意的過程中會消耗大量的能量。如果人體處於血糖濃度不足的情況下,那麼注意力難以集中。自控力與注意力有什麼關係?在自控的時候,我們必然需要集中注意力控制,那麼可以將注意力體現為自控力的燃料。興奮狀態下,自控力會有什麼變換?如果有一種藥物可以保持興奮,那麼...
十萬個為什麼兒童版 完整版 十萬個為什麼少兒版
十萬個為什麼 少兒版為什麼傷口能自動癒合?一被劃破或擦傷,身體就會立刻加以修補。體內的血小板會立刻趕去堵住 表層下的血 管破裂處。血小板使血液變稠直到凝固成塊,堵住破洞。十萬個為什麼兒童版 血止住了,凝 固的血塊會逐漸變成硬痂。經過一段時間,痂還會自行脫落。新的 細胞組織從痂下長出。新皮起初看上去呈...