十萬個為什麼 SVG

2021-09-24 07:12:46 字數 1687 閱讀 7547

這兩天學習了下 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...

十萬個為什麼 亂序(二)

為什麼注意力會被消弱?注意會如同肌肉一般,在集中注意的過程中會消耗大量的能量。如果人體處於血糖濃度不足的情況下,那麼注意力難以集中。自控力與注意力有什麼關係?在自控的時候,我們必然需要集中注意力控制,那麼可以將注意力體現為自控力的燃料。興奮狀態下,自控力會有什麼變換?如果有一種藥物可以保持興奮,那麼...

十萬個為什麼兒童版 完整版 十萬個為什麼少兒版

十萬個為什麼 少兒版為什麼傷口能自動癒合?一被劃破或擦傷,身體就會立刻加以修補。體內的血小板會立刻趕去堵住 表層下的血 管破裂處。血小板使血液變稠直到凝固成塊,堵住破洞。十萬個為什麼兒童版 血止住了,凝 固的血塊會逐漸變成硬痂。經過一段時間,痂還會自行脫落。新的 細胞組織從痂下長出。新皮起初看上去呈...