向量圖SVG的使用
向量圖SVG的簡介
SVG是全球資訊網聯盟 (W3C) 制定的一個基於 XML 的開放式標準,在Android Studio中,可以做為圖片資源匯入專案。
使用向量圖SVG的好處:
可以減小 APK 的尺寸,因為可以針對不同螢幕密度調整同一檔案的大小,而不會降低影像質量。
向量圖SVG在Android中的相容性:
在Android 5.0 (API 21) 及更高版本,已經支援SVG。而Android 4.4(API 20)及更低版本不支援向量圖,Android Studio可在構建時針對每種螢幕密度將向量圖轉換為不同大小的PNG圖。
向量圖SVG的使用
使用的過程主要是匯入SVG檔案
1、在Android Studio中,右鍵src/main/res資料夾,New > Vector Asset
2、在Asset Sutdio彈窗中,在Asset Type
選擇Local file,在Path
中選擇要匯入SVG檔案的路徑。其他預設不修改,然後點選Next。
3、可以選擇更改資源目錄,預設在main中,點選Finish。定義向量圖的 XML 檔案新增到專案的 app/src/main/res/drawable/ 資料夾中。可以在佈局檔案像引用PNG圖一樣,引用這些匯入的向量圖資源。
向量圖SVG的注意點
1、在構建專案時,預設情況下,如果最低API
級別為 Android 4.4(API 級別 20)及更低版本,則Android Studio將自動生成PNG檔案,用於低版本的相容性。可以在app/build/generated/res/pngs/debug/
資料夾中檢視生成的 PNG 和 XML 檔案。
2、在上面的情況下,如果不希望自動生動PNG圖(PNG圖會佔用APK體積),那麼可以使用支援庫功能,相容在低版本使用SVG資源。
在app model的build.gradle
檔案中新增一條宣告:
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
dependencies {
compile 'com.android.support:appcompat-v7:23.2.0'
}
支援庫的版本需要23.2或更高版本。
這時候,無論最低API
級別是多少,Android Studio都不會自動生成PNG圖,統一使用向量圖。
使用過程,還需要注意以下兩點:
(1)android:src屬性
在佈局檔案中,如果需要引用向量圖資源,則不能使用android:src
屬性(AS會提示錯誤),對應改成app:srcCompat
屬性。
(2)android:background屬性
在佈局檔案中,不能使用android:background
屬性引用向量圖資源,作為背景圖(在Android 4.4及更低版本會報崩潰)。
這時候需要在程式碼中,使用VectorDrawableCompat.create,動態新增背景圖
mRootView.setBackground(VectorDrawableCompat.create(getResources(), R.drawable.ic_stat_notify_dfu, getActivity().getTheme()));
參考
相關文章
- 向量圖編輯器:Boxy SVG for MacSVGMac
- Boxy SVG for Mac向量圖編輯器SVGMac
- Boxy SVG for Mac(向量圖編輯器)SVGMac
- Boxy SVG for Mac - 向量圖形編輯器SVGMac
- 向量圖編輯器:Boxy SVG for Mac 免啟用版SVGMac
- 使用SVG做模型貼圖的思路SVG模型
- svg圖示使用心得SVG
- Boxy SVG for Mac(向量圖編輯器) 4.15.0中文版SVGMac
- xml.etree.ElementTree 文件中文翻譯; SVG向量圖;Python標準庫XMLSVGPython
- 向量圖編輯器:Boxy SVG for Mac v4.17.0免啟用版SVGMac
- Boxy SVG for Mac(向量圖編輯器) v3.46.0免啟用版SVGMac
- Android資源res之向量圖完全指南(加SVG-path命令分析)AndroidSVG
- SVG 的使用SVG
- 使用icomoon把svg圖片生成字型圖示SVG
- Boxy SVG for Mac 向量圖編輯器 完美相容M1/M2SVGMac
- 在 React 中使用 SVG 圖示元件ReactSVG元件
- 如何使用 resnet 生成圖片向量?
- Web 前端向量小圖示的使用方法Web前端
- @vue/cli3.0 使用任意 SVG 圖示VueSVG
- svg圖示的webpack優化SVGWeb優化
- 改變SVG圖的顏色SVG
- svg 使用中的疑惑點SVG
- svg02——svg繪製基本圖形,瞭解常用的屬性SVG
- 圖片與向量的關係
- svg使用小計SVG
- 如何在 CSS 背景圖片中對 SVG 圖片進行著色 ,修改svg圖片顏色CSSSVG
- svg圖片 填充顏色SVG
- SVG繪製餅狀圖SVG
- svg製作小圖示SVG
- ☀️SVG對映反爬示例練習⚡直接提取SVG文字圖片的文字⚡SVG
- 動態更改svg圖片的顏色SVG
- 修改SVG圖片的大小和顏色SVG
- web前端 改變SVG圖的顏色Web前端SVG
- iconfont的使用,阿里向量相簿的引用,配置,改變圖示大小和圖示顏色阿里
- svg01——svg簡介及簡單使用SVG
- 以圖搜圖如何生成向量?
- [譯] 使用 SVG 和 Vue.Js 構建動態樹圖SVGVue.js
- Android 向量圖詳解Android