新增多種密度的向量圖形

Android Studio 提供一款名為 Vector Asset Studio 的工具,可協助您新增素材圖示,並將可擴充的向量圖形 (SVG) 和 Adobe Photoshop Document (PSD) 檔案匯入專案中,做為向量可繪項目資源。使用向量可擴充性 (而非點陣圖) 可縮減 APK 的大小,因為您可以針對不同螢幕密度調整同一個檔案的大小,而不會降低圖片品質。針對不支援向量可繪版本的舊版 Android,Vector Asset Studio 可在建構期間將向量可繪項目轉換為各種螢幕密度的不同點陣圖大小。

關於 Vector Asset Studio

Vector Asset Studio 將向量圖形加入專案做為 XML 檔案,用於說明圖片。 維護含有多個不同解析度的多個光 ster 圖像,其實維護一個 XML 檔案會比較簡單。

Android 4.4 (API 等級 20) 以下版本不支援向量可繪項目。如果您至少要採用這些 API 層級的最低 API 層級,則使用 Vector Asset Studio 時可採用兩種做法:產生可攜式網路圖像 (PNG) 檔案 (預設),或使用「支援」媒體庫。

為回溯相容,Vector Asset Studio 會產生向量可繪製內容的光 ster 圖片。向量和光 ster 可繪項目封裝在 APK 中。在 Java 程式碼中,你可以利用 Drawable@drawable 程式碼來表示向量可繪項目;您的應用程式執行時,相對應的向量或光 image 圖像會根據 API 層級自動顯示。

如果您只想使用向量可擴充性,可以使用 Android 支援資料庫 23.2 以上版本。如支援資料庫後端相容性一節所述,在您執行 Vector Asset Studio 之前,這項技術需要變更 build.gradle 檔案。支援資料庫中的 VectorDrawableCompat 類別可讓您在 Android 2.1 (API 層級 7) 以上版本中支援 VectorDrawable

支援的向量圖形類型

Google Material Design 規格可讓您質感設計圖示可以在 Android 應用程式中使用 Vector Asset Studio 能協助你選擇、匯入大小和新增大小素材的圖示,同時定義不透明度和從右到右 (RTL) 的鏡像設定。

Vector Asset Studio 也可讓您匯入自己的 SVG 和 PSD 檔案。SVG 是全球資訊網協會 (World Wide Web Consortium,W3C) 的 XML 公開標準。PSD 檔案格式支援 Adobe Photoshop 功能。Vector Asset Studio 支援基本標準,但並非所有 SVG 和 PSD 功能。 指定 SVG 或 PSD 檔案時,Vector Asset Studio 會立即提供有關受支援碼代碼的意見,這會將檔案轉換為包含 VectorDrawable 程式碼的 XML 檔案。如果發生錯誤,請確認能否順利轉譯 MV。如要進一步瞭解允許的 PSD 功能,請參閱 PSD 檔案的支援和限制

對於 Android 5.0 (API 層級 21) 以上版本,您可以使用 AnimatedVectorDrawable 類別來為 VectorDrawable 類別的屬性建立動畫。透過支援資料庫,您可以使用 AnimatedVectorDrawableCompat 類別為 Android 3.0 (API 層級 11) 以上版本的 VectorDrawable 類別製作動畫。詳情請參閱動畫向量可繪圖

SVG 與 PSD 檔案的注意事項

可繪項目適合用於簡單的圖示。材質圖示提供了良好圖片類型的範例,說明如何在應用程式中使用向量繪圖。相反地,許多應用程式的啟動圖示都有許多詳細資料,因此比光 ster 圖片更好。

向量繪製的初始載入作業可能會比對應的光 ster 映像檔更多的 CPU 週期。之後,兩者的記憶體用量和效能都很類似。建議您將向量圖片限制在 200 x 200 dp 以內;否則。

雖然向量可擴充性支援一或多種顏色,但在多數情況下,彩色圖示 (android:fillColor="#FF000000") 會是彩色的。使用這個方法時,您可以為版面配置中的向量可加上 intint 加入版面配置,且圖示顏色會變更為 tcolor 顏色。如果圖示顏色不是黑色,則圖示顏色可能會換成淺色顏色。

向量可繪製回溯相容性解決方案

下表概略說明可用於回溯相容性的兩項技巧:

技術 APK 中的可繪項目 VectorDrawable XML 元素 版本 建構旗標 應用程式的程式碼
PNG 產生 向量與光 ster 支援子集合

SVG:Gradle 適用的 Android 外掛程式 1.5.0 以上版本

PSD:Android Studio 2.2 以上版本

預設 支援多種程式設計技術
支援程式庫 23.2 以上版本 向量 完整支援 Gradle 2.0 以上版本的 Android 外掛程式 需要支援資料庫陳述式 支援的編碼技巧組合

使用向量可繪項目可能會產生較小的 APK,但向量可繪項目初始載入的時間可能會更長。

PNG 產生

Android 5.0 (API 層級 21) 以上版本提供向量可繪支援。如果您的應用程式最低 API 層級較低,Vector Asset Studio 會將向量可繪檔案新增至您的專案;此外,Gradle 會在建構期間以各種解析度建立 PNG 光 ster 映像檔。Gradle 會在 build.gradle 檔案中產生由網域特定語言 (DSL) 產生的 DenDenitiess 屬性指定的 PNG 密度。

對於 Android 5.0 (API 層級 21) 以上版本,Vector Asset Studio 支援所有 VectorDrawable 元素。為兼顧 Android 4.4 (API 層級 20) 及更舊版本,Vector Asset Studio 支援以下 XML 元素:

<vector>

  • android:width
  • android:height
  • android:viewportWidth
  • android:viewportHeight
  • android:alpha

<group>

  • android:rotation
  • android:pivotX
  • android:pivotY
  • android:scaleX
  • android:scaleY
  • android:translateX
  • android:translateY

<path>

  • android:pathData
  • android:fillColor
  • android:strokeColor
  • android:strokeWidth
  • android:strokeAlpha
  • android:fillAlpha
  • android:strokeLineCap
  • android:strokeLineJoin
  • android:strokeMiterLimit

您可以修改 Vector Asset Studio 產生的 XML 程式碼,但我們不建議這麼做。 變更程式碼中的值並不會造成任何問題,只要問題是有效且靜態的。如要新增 XML 元素,請根據最低 API 層級,確認系統支援這些元素。

支援資料庫

這項技術需要 Android 支援資料庫 23.2 以上版本,以及 Android 外掛程式 Gradle 2.0 以上版本,並且只能使用向量繪圖。支援資料庫中的 VectorDrawableCompat 類別可讓您在 Android 2.1 (API 層級 7) 以上版本中支援 VectorDrawable

使用 Vector Asset Studio 之前,您必須在 build.gradle 檔案中新增陳述式:

Groovy

android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}

dependencies {
    implementation 'com.android.support:appcompat-v7:23.2.0'
}

Kotlin

android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}

dependencies {
    implementation("com.android.support:appcompat-v7:23.2.0")
}

此外,您還必須使用與支援資料庫相容的編碼技術,例如使用 app:srcCompat 屬性,而非 android:src 屬性 (可繪製可變式)。詳情請參閱 Android 支援資料庫 23.2

執行 Vector Asset Studio

如何開始使用 Vector Asset Studio:

  1. 在 Android Studio 中開啟 Android 應用程式專案。
  2. 在「Project」(專案) 視窗中選取 Android 檢視畫面
  3. 在「res」資料夾上按一下滑鼠右鍵,然後選取「New」(新增) >「Vector Asset」(向量資產)
  4. 其他專案檢視畫面和資料夾也會使用這個選單項目。

    畫面上會出現向量資產工作室。

    圖 1.Vector Asset Studio

  5. 如果改為顯示「Need Newer Android Plugin for Gradle」(需要新版 Android 外掛程式 (Gradle)) 對話方塊,請更正您的 Gradle 版本,如下所示:
    1. 依序選取「File」(檔案) >「Project Structure」(專案架構)
    2. 在「Project Structure」(專案架構) 對話方塊中選取「Project」(專案)
    3. 在「Android Plugin Version」(Android 外掛程式版本) 欄位中,將 Gradle 的 Android 外掛程式變更為 1.5.0 以上版本,然後按一下「OK」(確定)
    4. Gradle 會同步處理專案。

    5. 在「Project」(專案) 視窗的 Android 檢視畫面中,在 res 資料夾上按一下滑鼠右鍵,然後選取「New」(新增) >「Vector Asset」(向量資產)
    6. 畫面上會出現向量資產工作室。

  6. 請繼續匯入向量圖形

匯入向量圖形

Vector Asset Studio 可協助您將向量圖形檔案匯入應用程式專案中。請按照下列任一程序操作:

新增教材圖示

開啟 Vector Asset Studio 後,您可以按照下列方式新增素材圖示:

  1. 在 Vector Asset Studio 中選取「Material Icon」(質感設計圖示)
  2. 按一下「Icon」(圖示) 欄位中的按鈕。
  3. 隨即顯示「Select Icon」(選取圖示) 對話方塊。您可以從左側清單中選取圖示類別,或在搜尋欄位中輸入搜尋條件 (如圖 2 所示),篩選要顯示哪些圖示。

    圖 2. 在向量資產庫中篩選素材圖示。

  4. 選取素材圖示,然後按一下「OK」(確定)。圖示會顯示在「向量可繪預覽畫面」中。

  5. 視需要變更資源名稱、大小、透明度和從右到左 (RTL) 的鏡像設定:
    • 名稱:如果您不想使用預設名稱,請輸入新的名稱。 如果專案中已有資源名稱,Vector Asset Studio 會自動建立專屬名稱 (並在名稱結尾加上數字)。這個名稱只能由小寫字元、底線和數字組成,
    • 「Override」(覆寫) - 如要調整圖片大小,請選取這個選項。輸入新的尺寸後,預覽區中就會顯示變更內容。
    • 預設值為 24 x 24 dp,詳情請參閱「質感設計」規格。如要取消回復預設值,請取消勾選這個核取方塊。

    • 不透明度:使用滑桿調整圖片的透明度。變更內容會顯示在預覽區域中。
    • 「Enable auto mirroring for RTL layout」(啟用 RTL 版面配置的自動鏡像功能) - 如果希望版面配置圖片從右到左 (而非由左到右) 顯示,請選取這個選項。例如,系統會從左到右閱讀某些語言;如果您有一個箭頭圖示,則應該顯示這張圖片的鏡像圖片。請注意,如果您使用的是較舊的專案,您可能也需要將 android:supportsRtl="true" 加入應用程式資訊清單。Android 5.0 (API 層級 21) 以上版本及支援資料庫都支援自動鏡射功能。
  6. 按一下「Next」(下一步)
  7. 視需要變更模組和資源目錄:
    • Res Directory - 選取要新增向量可繪資源的資源來源組合:src/main/ressrc/debug/ressrc/release/res 或使用者定義的來源組合。主要來源集適用於所有建構作業,包括偵錯和發布。偵錯和發布來源集會覆寫主要來源組合,並套用到單一版本的版本。偵錯來源集僅適用於偵錯。如要定義新的來源組合,請依序選取「File」(檔案) >「Project Structure」(專案架構) >「app」(應用程式) >「Build Types」(建構類型)。舉例來說,您可以定義 Beta 版來源集,並建立包含版本「Beta 版」的圖示版本。詳情請參閱設定建構變數

    「Output Directories」(輸出目錄) 區域會顯示向量可繪項目以及會顯示該目錄的目錄。

  8. 按一下「Finish」(完成)
  9. Vector Asset Studio 新增了 XML 檔案,定義 app/src/main/res/drawable/ 資料夾中的專案可繪製的向量。在「Project」(專案) 視窗的 Android 檢視畫面中,您可以在 drawable 資料夾中查看產生的向量 XML 檔案。

  10. 建構專案。
  11. 如果最低 API 層級為 Android 4.4 (API 層級 20) 以下,且您尚未啟用支援資料庫技術,則 Vector Asset Studio 會產生 PNG 檔案。在「Project」(專案) 視窗的專案檔案檢視畫面中,您可以在 app/build/generated/res/pngs/debug/ 資料夾中查看產生的 PNG 和 XML 檔案。

    請勿編輯這些產生的光 ster 檔案,而是使用向量 XML 檔案。 建構系統會在需要時自動重新產生光 ster 檔案,因此無需維護檔案。

匯入 SVG 或 PSD 檔案

開啟 Vector Asset Studio 後,您可以按照下列方式匯入 SVG 或 PSD 檔案:

  1. 在 Vector Asset Studio 中選取 「本機檔案」
  2. 檔案必須位於本機硬碟中。舉例來說,如果檔案位於網路中,您必須先將其下載到本機磁碟。

  3. 按一下「…」即可指定圖片檔
  4. 圖片會顯示在向量繪圖可預覽中。

    如果 SVG 或 PSD 檔案含有不支援的功能,Vector Asset Studio 的底部會顯示錯誤,如圖 3 所示。

    圖 3. 向量資產工作室顯示一些錯誤。

    如果發現錯誤,您必須確認匯入的可繪項目正確顯示。 捲動清單以檢視錯誤。

    如需支援的元素清單,請參閱向量可擴充性相容解決方案。如要進一步瞭解允許的 PSD 檔案,請參閱PSD 檔案的支援和限制

  5. 視需要變更資源名稱、大小、透明度和從右到左 (RTL) 的鏡像設定:
    • 名稱:如果您不想使用預設名稱,請輸入新的名稱。如果專案中已有資源名稱,Vector Asset Studio 會自動建立專屬名稱 (並在名稱結尾加上數字)。這個名稱只能由小寫字元、底線和數字組成,
    • 「Override」(覆寫) - 如要調整圖片大小,請選取這個選項。選取之後,圖片大小就會改變。只要您變更大小,預覽區就會顯示相關變更。 預設值為 24 x 24 dp,詳情請參閱質感設計規格。
    • 不透明度:使用滑桿調整圖片的透明度。變更內容會顯示在預覽區域中。
    • 「Enable auto mirroring for RTL layout」(啟用 RTL 版面配置的自動鏡像功能) - 如果希望版面配置圖片從右到左 (而非由左到右) 顯示,請選取這個選項。例如,系統會從左到右閱讀某些語言;如果您有一個箭頭圖示,則應該顯示這張圖片的鏡像圖片。請注意,如果您使用的是較舊的專案,可能需要將 android:supportsRtl="true" 加入應用程式資訊清單。Android 5.0 (API 層級 21) 以上版本及支援資料庫支援自動鏡射功能。
  6. 按一下「Next」(下一步)
  7. 視需要變更資源目錄:
    • Res Directory - 選取要新增向量可繪資源的資源來源組合:src/main/ressrc/debug/ressrc/release/res 或使用者定義的來源集。主要來源集適用於所有建構作業,包括偵錯和發布。偵錯和發布來源集會覆寫主要來源組合,並套用到單一版本的版本。偵錯來源集僅適用於偵錯。如要定義新的來源組合,請依序選取「File」(檔案) >「Project Structure」(專案架構) >「app」(應用程式) >「Build Types」(建構類型)。舉例來說,您可以定義 Beta 版來源集,並建立包含版本「Beta 版」的圖示版本。詳情請參閱設定建構變數

    「Output Directories」(輸出目錄) 區域會顯示向量可繪項目以及會顯示該目錄的目錄。

  8. 按一下「Finish」(完成)
  9. Vector Asset Studio 新增了 XML 檔案,定義 app/src/main/res/drawable/ 資料夾中的專案可繪製的向量。在「Project」(專案) 視窗的 Android 檢視畫面中,您可以在 drawable 資料夾中查看產生的向量 XML 檔案。

  10. 建構專案。
  11. 如果最低 API 層級為 Android 4.4 (API 層級 20) 以下,且您尚未啟用支援資料庫技術,則 Vector Asset Studio 會產生 PNG 檔案。在「Project」(專案) 視窗的專案檔案檢視畫面中,您可以在 app/build/generated/res/pngs/debug/ 資料夾中查看產生的 PNG 和 XML 檔案。

    請勿編輯這些產生的光 ster 檔案,而是使用向量 XML 檔案。 建構系統會在需要時自動重新產生光 ster 檔案,因此無需維護檔案。

在版面配置中加入向量圖形

在版面配置檔案中,您可以將任何圖示相關小工具 (例如 ImageButtonImageView 等) 設為指向可向量繪製。舉例來說,下列版面配置會顯示按鈕中的向量可繪項目:

圖 4. 在版面配置的按鈕上顯示的向量可繪項目。

如何在小工具中顯示可轉譯的向量,如下圖所示:

  1. 開啟專案並匯入可轉譯的向量
  2. 這個範例使用的是新專案精靈產生的手機/平板電腦專案。

  3. 在「Project」(專案) 視窗的 Android 檢視畫面中,按兩下版面配置 XML 檔案,例如 content_main.xml
  4. 按一下「Design」(設計) 分頁標籤,即可顯示版面配置編輯器
  5. ImageButton 小工具從「Palette」(版面) 視窗拖曳至版面配置編輯器。
  6. 在「Resources」(資源) 對話方塊中,選取左側窗格中的「Drawable」(可繪項目),然後選取您匯入的向量功能。按一下「OK」(確定)
  7. 向量可否顯示在版面配置的 ImageButton 中。

  8. 如要將圖片的顏色變更為主題中定義的強調色,請在「Properties」(屬性) 視窗中找出「tint」(色調) 屬性,然後按一下「…」
  9. 在「Resources」(資源) 對話方塊中,選取左側窗格中的「Color」(顏色),然後選取「colorAccent」。按一下「OK」(確定)
  10. 在版面配置中,圖片的顏色會變更為強調色。

如果專案使用支援資料庫,ImageButton 程式碼應該會與下列類似:

<ImageButton
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  app:srcCompat="@drawable/ic_build_black_24dp"
  tools:layout_editor_absoluteX="11dp"
  tools:layout_editor_absoluteY="225dp"
  android:id="@+id/imageButton"
  android:tint="@color/colorAccent" />

如果專案未使用支援資料庫,向量可轉譯程式碼就會是 android:src="@drawable/ic_build_black_24dp"

參照可在程式碼中繪製的向量

一般來說,您可以在程式碼中以一般方式參照向量可提取資源,當應用程式執行時,系統會根據 API 層級自動顯示對應的向量或光 image 圖片:

  • 在多數情況下,您可以在 XML 程式碼中將向量可繪項目稱為 @drawable,或在 Java 程式碼中參照 Drawable
  • 舉例來說,下列版面配置 XML 程式碼會將圖片套用至檢視畫面:

    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/myimage" />
    

    以下 Java 程式碼將圖片擷取為 Drawable

    Kotlin

    val drawable = resources.getDrawable(R.drawable.myimage, theme)

    Java

    Resources res = getResources();
    Drawable drawable = res.getDrawable(R.drawable.myimage, getTheme());
    

    getResources() 方法位於 Context 類別,該類別適用於使用者介面物件,例如活動、片段、版面配置、檢視表等。

  • 如果您的應用程式完全使用支援資料庫 (即使 build.gradle 檔案中沒有 vectorDrawables.useSupportLibrary = true 陳述式),您也可以參照有可轉譯的向量 app:srcCompat 陳述式。例如:
  • <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        app:srcCompat="@drawable/myimage" />
    
  • 有時您可能需要將可繪項目類型輸入至確切的類別,例如需要使用 VectorDrawable 類別的特定功能時。如要進行這項作業,您可以使用 Java 程式碼,如下所示:
  • Kotlin

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        val vectorDrawable = drawable as VectorDrawable
    } else {
        val bitmapDrawable = drawable as BitmapDrawable
    }
    

    Java

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
       VectorDrawable vectorDrawable = (VectorDrawable) drawable;
    } else {
       BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
    }
    

您只能從主執行緒存取向量可轉譯資源。

針對支援資料庫技術,您必須使用與支援資料庫相容的編碼技術。詳情請參閱 Android 支援資料庫 23.2

修改 Vector Asset Studio 產生的 XML 程式碼

您可以修改向量可繪製 XML 程式碼,但無法在建構期間產生的 PNG 和相對應的 XML 程式碼。但我們不建議這麼做。

使用 PNG 產生技術時,Vector Asset Studio 可確保向量可拖曳且 PNG 相符,且資訊清單包含正確的程式碼。如果您新增的程式碼不支援 Android 4.4 (API 層級 20) 以下版本,向量和 PNG 圖片可能會不同。您也需要確保資訊清單包含支援變更的程式碼。

如要在不使用支援資料庫技術的情況下修改向量 XML 檔案,請按照下列步驟操作:

  1. 在「Project」(專案) 視窗中,按兩下 drawable 資料夾中產生的向量 XML 檔案。
  2. XML 檔案會顯示在編輯器和「Preview」(預覽) 視窗中。

    圖 5. 程式碼編輯器和預覽視窗中顯示的向量 XML 檔案。

  3. 根據最低 API 層級支援的功能編輯 XML 程式碼:
  4. 建立專案,檢查向量可繪製和對應的光 ster 圖片外觀。
  5. 提醒您,因為產生的顯示引擎和建構前對向量進行的任何變更,在「Preview」(預覽) 視窗中產生的 PNG 檔案都可能與應用程式不同。如果您在 Vector Asset Studio 建立的向量 XML 檔案中新增程式碼,產生的 Android 4.4 (API 層級 20) 以下版本中不會顯示任何功能。因此,當您新增程式碼時,應一律檢查產生的 PNG 是否與向量可繪項目相符。做法是您可以在「Project」(專案) 視窗中按兩下專案檔案檢視畫面中的 PNG;如果程式碼參照可繪圖,程式碼編輯器的左邊界也會顯示 PNG 圖片 (如圖 6 所示)。

    圖 6. 顯示在程式碼編輯器左側邊界的 PNG 圖片。

刪除從專案中繪製的向量

如何移除從專案提取的向量:

  1. 在「Project」(專案) 視窗中透過選取檔案並按下「Delete」(刪除) 鍵 (或選取「Edit」(編輯) >「Delete」(刪除)),來刪除產生的向量 XML 檔案。
  2. 隨即顯示「Safe Delete」(安全刪除) 對話方塊。

  3. 視需要選取選項來尋找檔案使用的位置,然後按一下「OK」(確定)
  4. Android Studio 會從專案和雲端硬碟中刪除檔案。不過,如果您選擇在專案中搜尋檔案所在的位置,但發現某些用量,可以查看這些檔案並決定是否要刪除檔案。

  5. 依序選取「Build」(建構) >「Clean Project」(清理專案)
  6. 所有遭刪除的可繪項目向量相對應的自動產生的 PNG 和 XML 檔案,都會從專案和雲端硬碟中移除。

提供的應用程式包含向量可繪項目

如果您使用支援資料庫技術,或最低 API 層級為 Android 5.0 (API 層級 21) 以上版本,您的 APK 就會包含您使用 Vector Asset Studio 新增的向量可繪項目。與將向量圖片轉換為 PNG 檔相比,這些 APK 的大小上限會比較低。

如果您的最低 API 層級包含 Android 4.4 (API 層級 20) 以下,且您的專案中有對應的向量可繪製和光 ster 圖像,您有兩種方法可以提供 APK 檔案:

  • 建立一個包含向量可繪項目和對應光 ster 表示法的 APK。最簡單的導入方式就是這種解決方案。
  • 針對不同 API 等級建立多個 APK如果您在 Android 5.0 (API 層級 21) 以上版本的 APK 中加入相對應的光 ster 映像檔,則 APK 的大小會小上許多。詳情請參閱多重 APK 支援

PSD 檔案的支援與限制

Vector Asset Studio 不支援所有 PSD 檔案功能。下方清單列出了支援與不支援的 PSD 特性,以及部分轉換詳細資料。

文件

支援:

  • 點陣圖、灰階、已建立索引、RGB、研究室或 CMYK 的 PSD 色彩模式。
  • 色彩深度為 8、16 或 32 位元。

轉換詳細資料

  • PSD 文件尺寸成為向量可繪項目和可視區域維度。

不支援

  • 單色或多聲道的 PSD 色彩模式。

形狀

支援:

  • 剪輯遮罩 (如果形狀有其他形狀)。
  • 形狀運算,包括合併/新增、交錯、減去和排除。

不支援

  • Photoshop 圖形所使用的奇數填滿規則。在 Android 6.0 (API 層級 23) 以下版本中,向量可繪項目僅支援非零供應規則。在自行相配的形狀中,這項限制可能導致 PSD 和產生的向量如何轉譯。如要修正這個問題,請將向量可縮放形狀的 android:fillType="evenOdd" 加入。例如:
    <vector xmlns:android="https://schemas.android.com/apk/res/android"
        android:viewportHeight="168"
        android:height="24dp"
        android:viewportWidth="209"
        android:width="24dp">
    
        <path
            android:fillAlpha="1.0"
            android:fillColor="#000000"
            android:fillType="evenOdd"
            android:pathData="M24,58 L24,167 L114,167 L114,66 M64,1 L64,96 L208,96 L208,8 M1,97 L146,139 L172,47"/>
    </vector>
    

筆劃和填滿

支援:

  • 筆劃,包括顏色、透明度、寬度、彙整、上限、破折號和對齊方式。
  • 純色填滿色彩和筆觸。
  • 筆劃和填滿色彩的色彩格式為 RGB、Lab 或 CMYK。

轉換詳細資料

  • 如果某個筆劃是虛線、使用裁剪基準被裁切,或使用正中央以外的對齊方式,Vector Asset Studio 就會將其轉換為向量可繪項目中的填滿形狀。

不支援

  • 純色以外的筆觸和筆觸,例如漸層。

不透明度

支援:

  • 不透明度為 0 的形狀圖層。

轉換詳細資料

  • Vector Asset Studio 將供應透明度乘以圖層透明度,來計算供應 Alpha 的層。
  • 這項工具會將裁剪基準的不透明度 (如果有裁剪基準) 與填滿 Alpha 值相乘,藉此計算最終的填滿 Alpha 值。
  • 這項工具會將筆劃透明度乘以圖層透明度,用來計算筆劃 Alpha 版。
  • 這項工具會將裁剪基準的不透明度 (如果有裁剪基準) 與筆劃 Alpha 版進行比對,計算最終筆劃 Alpha 版。

圖層

支援:

  • 任何可見的形狀圖層。

轉換詳細資料

  • Vector Asset Studio 會保留向量可提取檔案中的圖層名稱。

不支援

  • 圖層效果。
  • 調整項和文字圖層。
  • 混合模式 (忽略)。

可擴充向量圖形檔案的支援與限制

Vector Asset Studio 不支援所有 SVG 檔案功能。本節概述這項工具將 SVG 檔案轉換為 VectorDrawable 時,可用的支援和不支援的功能,以及其他轉換詳細資料。

支援的功能

VectorDrawable 支援 Tiny SVG 1.2 的所有功能,但文字除外。

形狀

VectorDrawable 支援 SVG 路徑

這項工具會將原始形狀 (例如圓形、正方形和多邊形) 轉換為路徑。

變換

這項工具支援轉換矩陣,並直接套用至子項路徑。

群組

這項工具支援使用群組元素進行翻譯、縮放及旋轉。群組不支援不透明度屬性。

這項工具也會將任何群組樣式或透明度套用至子項路徑。

填滿和筆觸

可以使用純色或漸層 (線性、放射或角度) 來填滿和筆觸。 僅支援置中的筆劃。不支援混合模式。不支援虛線路徑。

面具

這項工具每個群組支援一組裁剪遮罩。

可擴充向量圖形匯入工具不支援的功能

上方支援的功能一節未列出的功能皆不受支援。不支援的功能包括:

  • 濾鏡效果:不支援投射陰影、模糊效果和色彩矩陣等效果。
  • 文字:建議使用其他工具將文字轉換成形狀。
  • 模式填滿