Android Studio zawiera narzędzie o nazwie Vector Asset Studio, które pomaga dodawać ikony w stylu Material Design oraz importować do projektu pliki SVG (Scalable Vector Graphic) i Adobe Photoshop Document (PSD) jako zasoby obiektów rysowalnych wektorowo. Używanie obiektów rysowalnych wektorowo zamiast bitmap zmniejsza rozmiar pliku APK, ponieważ ten sam plik można skalować do różnych gęstości ekranu bez utraty jakości obrazu. W przypadku starszych wersji Androida, które nie obsługują obiektów rysowalnych wektorowo, narzędzie Vector Asset Studio może w czasie kompilacji przekształcić obiekty rysowalne wektorowo w różne rozmiary bitmap dla każdej gęstości ekranu.
Informacje o Vector Asset Studio
Vector Asset Studio dodaje do projektu grafikę wektorową jako plik XML, który opisuje obraz. Prowadzenie jednego pliku XML może być łatwiejsze niż aktualizowanie wielu grafik rastrowych w różnych rozdzielczościach.
Aby używać rysunków wektorowych w Jetpack Compose, musisz ustawić minimalny poziom interfejsu API na Androida 5.0 (poziom interfejsu API 21) lub nowszego.
Android 4.4 (poziom interfejsu API 20) i starsze wersje nie obsługują rysunków wektorowych. Jeśli minimalny poziom interfejsu API jest ustawiony na jeden z tych poziomów, podczas korzystania z Vector Asset Studio masz 2 opcje: wygenerować pliki PNG (domyślnie) lub użyć techniki zgodności wstecznej w Androidzie X.
Aby zapewnić zgodność wsteczną, narzędzie Vector Asset Studio generuje obrazy rastrowe obiektu rysowalnego wektorowo. Grafiki wektorowe i rastrowe są pakowane razem w pliku APK. Do rysunków wektorowych możesz odwoływać się w kodzie Kotlin jako Drawable lub w kodzie XML jako @drawable. Gdy aplikacja jest uruchomiona, odpowiedni obraz wektorowy lub rastrowy wyświetla się automatycznie w zależności od poziomu interfejsu API.
Jeśli chcesz używać tylko rysunków wektorowych, możesz użyć Androida X w wersji 1.0.0 lub nowszej. Ta technika wymaga zmiany pliku build.gradle przed uruchomieniem Vector Asset Studio, jak opisano w AndroidX. Klasa
VectorDrawableCompat w AndroidX umożliwia obsługę
VectorDrawable na Androidzie 2.1 (poziom interfejsu API 7) i nowszych wersjach.
Obsługiwane typy grafiki wektorowej
Specyfikacja Google Material Design zawiera ikony Material, których możesz używać w aplikacjach na Androida. Vector Asset Studio pomaga wybierać, importować i zmieniać rozmiar ikon w stylu Material Design, a także określać nieprzezroczystość i ustawienie tworzenia odbicia lustrzanego w przypadku języków zapisywanych od prawej do lewej.
Vector Asset Studio umożliwia też importowanie własnych plików SVG i PSD. SVG to otwarty standard oparty na XML-u, opracowany przez World Wide Web Consortium (W3C). Format pliku PSD obsługuje funkcje Adobe Photoshop. Vector Asset Studio obsługuje podstawowe standardy, ale nie wszystkie funkcje SVG i PSD. Gdy określisz plik SVG lub PSD, Vector Asset Studio od razu poinformuje Cię, czy kod graficzny jest obsługiwany. Konwertuje plik na plik XML zawierający kod VectorDrawable. Jeśli pojawią się błędy, sprawdź, czy obiekt rysowalny wektorowo wygląda zgodnie z oczekiwaniami. Więcej informacji o dozwolonych funkcjach PSD znajdziesz w artykule Obsługa i ograniczenia dotyczące plików PSD.
Na Androidzie 5.0 (poziom interfejsu API 21) i nowszych możesz używać klasy
AnimatedVectorDrawable do animowania właściwości klasy
VectorDrawable. W AndroidzieX możesz używać klasy
AnimatedVectorDrawableCompat do animowania klasy VectorDrawable na Androidzie 3.0 (poziom interfejsu API 11) i nowszych wersjach. Więcej informacji znajdziesz w artykule Animowane obrazy wektorowe w Compose.
Uwagi dotyczące plików SVG i PSD
Obiekt rysowalny wektorowo jest odpowiedni w przypadku prostych ikon. Ikony Material Design to dobre przykłady typów obrazów, które sprawdzają się jako rysunki wektorowe w aplikacji. Z kolei wiele ikon uruchamiania aplikacji zawiera dużo szczegółów, więc lepiej sprawdzają się jako obrazy rastrowe.
Początkowe wczytywanie obiektu rysowalnego wektorowo może wymagać więcej cykli procesora niż odpowiadający mu obraz rastrowy. Potem wykorzystanie pamięci i wydajność są podobne w obu przypadkach. Zalecamy ograniczenie obrazu wektorowego do maksymalnie 200 × 200 dp, w przeciwnym razie jego narysowanie może zająć zbyt dużo czasu.
Chociaż obiekty rysowalne wektorowo mogą obsługiwać jeden lub więcej kolorów, w wielu przypadkach warto pokolorować ikony na czarno (android:fillColor="#FF000000"). Dzięki temu możesz dodać zabarwienie do obiektu rysowalnego wektorowo umieszczonego w układzie, a kolor ikony zmieni się na kolor zabarwienia. Jeśli kolor ikony nie jest czarny, może się on zlewać z kolorem odcienia.
Rozwiązania zapewniające zgodność wsteczną obiektów rysowalnych wektorowo
W tabeli poniżej znajdziesz podsumowanie 2 technik, których możesz użyć w celu zapewnienia zgodności wstecznej:
| Metoda | Elementy rysowalne w pliku APK | Elementy XML obiektu VectorDrawable | Wersja | Flagi kompilacji | Kod aplikacji |
|---|---|---|---|---|---|
| Generowanie plików PNG | Wektory i rastry | Obsługiwany podzbiór | SVG: wtyczka Androida do obsługi Gradle w wersji 1.5.0 lub nowszej. PSD: Android Studio 2.2 lub nowszy |
Domyślny | Obsługa różnych technik kodowania |
| AndroidX w wersji 1.0 lub nowszej | Wektor | Pełna obsługa | Wtyczka Androida do obsługi Gradle w wersji 3.2 lub nowszej | Wymagane oświadczenia dotyczące biblioteki pomocy | Obsługiwany jest tylko podzbiór technik kodowania |
Używanie obrazów wektorowych może zmniejszyć rozmiar pliku APK, ale początkowe wczytywanie obrazów wektorowych może trwać dłużej.
Generowanie PNG
Android 5.0 (poziom interfejsu API 21) i nowsze wersje obsługują obiekty rysowalne wektorowo. Jeśli Twoja aplikacja ma niższy minimalny poziom interfejsu API, Vector Asset Studio doda do projektu plik wektorowy, a podczas kompilacji Gradle utworzy rastrowe obrazy PNG w różnych rozdzielczościach. Gradle generuje gęstości PNG określone przez język DSL (Domain Specific Language) we właściwości generatedDensities w pliku build.gradle.
W przypadku Androida 5.0 (poziom interfejsu API 21) i nowszych wersji narzędzie Vector Asset Studio obsługuje wszystkie elementy VectorDrawable. Aby zapewnić zgodność wsteczną z Androidem 4.4 (poziom API 20) i starszymi wersjami, narzędzie Vector Asset Studio obsługuje te elementy XML:
<vector>
android:widthandroid:heightandroid:viewportWidthandroid:viewportHeightandroid:alpha
<group>
android:rotationandroid:pivotXandroid:pivotYandroid:scaleXandroid:scaleYandroid:translateXandroid:translateY
<path>
android:pathDataandroid:fillColorandroid:strokeColorandroid:strokeWidthandroid:strokeAlphaandroid:fillAlphaandroid:strokeLineCapandroid:strokeLineJoinandroid:strokeMiterLimit
Możesz zmienić kod XML wygenerowany przez Vector Asset Studio, ale nie jest to zalecane. Zmiana wartości w kodzie nie powinna powodować żadnych problemów, o ile są one prawidłowe i statyczne. Jeśli chcesz dodać elementy XML, musisz mieć pewność, że są one obsługiwane na podstawie minimalnego poziomu API.
AndroidX
Ta metoda wymaga AndroidX w wersji 1.0 lub nowszej oraz wtyczki Androida do obsługi Gradle w wersji 3.2 lub nowszej i korzysta tylko z obiektów rysowalnych wektorowo. Klasa VectorDrawableCompat
w AndroidX umożliwia obsługę VectorDrawable na Androidzie 2.1 (API na poziomie 7) i nowszych wersjach.
Zanim zaczniesz korzystać z Vector Asset Studio, musisz dodać do pliku build.gradle to oświadczenie:
Kotlin
android { defaultConfig { vectorDrawables.useSupportLibrary = true } } dependencies { implementation("androidx.appcompat:appcompat:1.7.1") }
Dynamiczny
android { defaultConfig { vectorDrawables.useSupportLibrary = true } } dependencies { implementation 'androidx.appcompat:appcompat:1.7.1' }
Uruchamianie Vector Asset Studio
Aby uruchomić Vector Asset Studio:
W Android Studio otwórz projekt aplikacji na Androida.
W oknie Projekt wybierz widok Androida.
Kliknij prawym przyciskiem myszy folder res i wybierz Nowy > Zasób wektorowy.
Ten element menu jest też dostępny w innych widokach i folderach projektu.
Otworzy się Vector Asset Studio.
Rysunek 1. Vector Asset Studio.
Jeśli zamiast tego pojawi się okno Need Newer Android Plugin for Gradle (Wymagana nowsza wtyczka Androida do obsługi Gradle), popraw wersję Gradle w ten sposób:
Wybierz Plik > Struktura projektu.
W oknie Struktura projektu wybierz Projekt.
W polu Android Plugin Version (Wersja wtyczki Androida) zmień wersję wtyczki Androida do obsługi Gradle na 1.5.0 lub nowszą i kliknij OK.
Gradle synchronizuje projekt.
W widoku Androida okna Projekt kliknij prawym przyciskiem myszy folder res i wybierz Nowy > Komponent wektorowy.
Otworzy się Vector Asset Studio.
Przejdź do sekcji Importowanie grafiki wektorowej.
Importowanie grafiki wektorowej
Vector Asset Studio pomaga importować pliki grafiki wektorowej do projektu aplikacji. Wykonaj jedną z tych czynności:
Dodawanie ikony w stylu Material Design
Po otwarciu Vector Asset Studio możesz dodać ikonę w stylu Material Design w ten sposób:
W Vector Asset Studio kliknij Clip art.
W polu Klipart kliknij przycisk.
Pojawi się okno Wybierz ikonę. Możesz filtrować widoczne ikony, wybierając kategorię ikon z menu lub wpisując tekst w polu wyszukiwania, jak pokazano na ilustracji 2.
Rysunek 2. Filtrowanie ikon Material w Vector Asset Studio.
Wybierz ikonę w stylu Material Design i kliknij OK. Ikona pojawi się w podglądzie rysunku wektorowego.
Opcjonalnie zmień nazwę, rozmiar, krycie i ustawienie odbicia lustrzanego od prawej do lewej (RTL) zasobu:
Nazwa – wpisz nową nazwę, jeśli nie chcesz używać nazwy domyślnej. Studio komponentów wektorowych automatycznie tworzy unikalną nazwę (dodaje na końcu nazwy liczbę), jeśli nazwa zasobu już istnieje w projekcie. Nazwa może zawierać tylko małe litery, podkreślenia i cyfry.
Zastąp – wybierz tę opcję, jeśli chcesz dostosować rozmiar obrazu. Gdy wpiszesz nowy rozmiar, zmiana pojawi się w obszarze podglądu.
Domyślna wartość to 24 x 24 dp, co jest zdefiniowane w specyfikacji Material Design. Odznacz pole wyboru, aby wrócić do ustawień domyślnych.
Przezroczystość – użyj suwaka, aby dostosować przezroczystość obrazu. Zmiana pojawi się w obszarze podglądu.
Włącz automatyczne odbicie lustrzane w przypadku układu od prawej do lewej – wybierz tę opcję, jeśli chcesz, aby w przypadku układu od prawej do lewej wyświetlało się odbicie lustrzane zamiast obrazu od lewej do prawej. Na przykład niektóre języki są czytane od prawej do lewej. Jeśli masz ikonę strzałki, w takim przypadku możesz wyświetlić jej odbicie lustrzane. Pamiętaj, że jeśli pracujesz nad starszym projektem, być może trzeba będzie też dodać
android:supportsRtl="true"do manifestu aplikacji. Automatyczne dublowanie jest obsługiwane na Androidzie 5.0 (poziom interfejsu API 21) i nowszym oraz w AndroidzieX.
Kliknij Dalej.
Opcjonalnie zmień katalog modułu i zasobów:
- Katalog zasobów – wybierz zbiór źródeł zasobów, do którego chcesz dodać obiekt rysowalny wektorowo:
src/main/res,src/debug/res,src/release/reslub zdefiniowany przez użytkownika zbiór źródeł. Główny zbiór źródeł ma zastosowanie do wszystkich wariantów kompilacji, w tym do wersji debugowania i wersji do publikacji. Zbiory źródeł debugowania i wersji zastępują główny zbiór źródeł i są stosowane do jednej wersji kompilacji. Zbiór źródeł debugowania służy tylko do debugowania. Aby zdefiniować nowy zbiór źródeł, wybierz Plik > Struktura projektu > aplikacja > Typy kompilacji. Możesz na przykład zdefiniować zestaw źródeł w wersji beta i utworzyć wersję ikony z tekstem „BETA” w prawym dolnym rogu. Więcej informacji znajdziesz w artykule Konfigurowanie wariantów kompilacji.
W obszarze Katalogi wyjściowe wyświetli się obiekt rysowalny wektorowo i katalog, w którym będzie się on znajdować.
- Katalog zasobów – wybierz zbiór źródeł zasobów, do którego chcesz dodać obiekt rysowalny wektorowo:
Kliknij Zakończ.
Vector Asset Studio dodaje do projektu w folderze
app/src/main/res/drawable/plik XML definiujący obiekt rysowalny wektorowo. W widoku Androida okna Projekt możesz wyświetlić wygenerowany plik XML wektorowy w folderze drawable.Skompiluj projekt.
Jeśli minimalny poziom interfejsu API to Android 4.4 (poziom interfejsu API 20) lub starszy, a nie masz włączonej techniki AndroidX, Vector Asset Studio wygeneruje pliki PNG. W widoku plików projektu w oknie projektu możesz wyświetlić wygenerowane pliki PNG i XML w folderze
app/build/generated/res/pngs/debug/.Nie należy edytować wygenerowanych plików rastrowych, ale pracować z wektorowym plikiem XML. System kompilacji automatycznie regeneruje pliki rastrowe, gdy jest to potrzebne, więc nie musisz ich utrzymywać.
Importowanie pliku SVG lub PSD
Po otwarciu Studia zasobów wektorowych możesz zaimportować plik SVG lub PSD w ten sposób:
W Vector Asset Studio wybierz Plik lokalny.
Plik musi znajdować się na dysku lokalnym. Jeśli znajduje się ona w sieci, musisz ją najpierw pobrać na dysk lokalny.
Wskaż plik obrazu, klikając … .
Obraz pojawi się w podglądzie rysunku wektorowego.
Jeśli plik SVG lub PSD zawiera nieobsługiwane funkcje, u dołu narzędzia Vector Asset Studio pojawi się błąd, jak pokazano na rysunku 3.
Rysunek 3. Vector Asset Studio wyświetla błędy.
Jeśli widzisz błędy, musisz się upewnić, że zaimportowany obiekt rysowalny wektorowo jest prawidłowo renderowany. Przewiń listę, aby wyświetlić błędy.
Listę obsługiwanych elementów znajdziesz w artykule Rozwiązania zapewniające zgodność wsteczną z wektorowymi plikami do rysowania. Więcej informacji o dozwolonych plikach PSD znajdziesz w artykule Obsługa i ograniczenia dotyczące plików PSD.
Opcjonalnie zmień nazwę, rozmiar, krycie i ustawienie odbicia lustrzanego od prawej do lewej (RTL) zasobu:
Nazwa – wpisz nową nazwę, jeśli nie chcesz używać nazwy domyślnej. Studio komponentów wektorowych automatycznie tworzy unikalną nazwę (dodaje na końcu nazwy liczbę), jeśli nazwa zasobu już istnieje w projekcie. Nazwa może zawierać tylko małe litery, podkreślenia i cyfry.
Zastąp – wybierz tę opcję, jeśli chcesz dostosować rozmiar obrazu. Po wybraniu rozmiar zmieni się na rozmiar samego obrazu. Za każdym razem, gdy zmienisz rozmiar, zmiana pojawi się w obszarze podglądu. Domyślna wartość to 24 x 24 dp, co jest zdefiniowane w specyfikacji Material Design.
Przezroczystość – użyj suwaka, aby dostosować przezroczystość obrazu. Zmiana pojawi się w obszarze podglądu.
Włącz automatyczne odbicie lustrzane w przypadku układu od prawej do lewej – wybierz tę opcję, jeśli chcesz, aby w przypadku układu od prawej do lewej wyświetlało się odbicie lustrzane zamiast obrazu od lewej do prawej. Na przykład w niektórych językach czyta się od prawej do lewej. Jeśli masz ikonę strzałki, w takim przypadku możesz wyświetlić jej odbicie lustrzane. Jeśli pracujesz nad starszym projektem, może być konieczne dodanie
android:supportsRtl="true"do manifestu aplikacji. Automatyczne dublowanie jest obsługiwane przez Androida 5.0 (poziom interfejsu API 21) i nowsze wersje oraz AndroidX.
Kliknij Dalej.
Opcjonalnie zmień katalog zasobów:
- Katalog zasobów – wybierz zbiór źródeł zasobów, do którego chcesz dodać obiekt rysowalny wektorowo:
src/main/res,src/debug/res,src/release/reslub zdefiniowany przez użytkownika zbiór źródeł. Główny zbiór źródeł dotyczy wszystkich wariantów kompilacji, w tym wersji debugowania i wersji do publikacji. Zbiory źródeł debugowania i wersji zastępują główny zbiór źródeł i mają zastosowanie do jednej wersji kompilacji. Zbiór źródeł debugowania służy tylko do debugowania. Aby zdefiniować nowy zbiór źródeł, kliknij kolejno Plik > Struktura projektu > app > Typy kompilacji. Możesz na przykład zdefiniować zbiór źródeł wersji beta i utworzyć wersję ikony, która w prawym dolnym rogu zawiera tekst „BETA”. Więcej informacji znajdziesz w artykule Konfigurowanie wariantów kompilacji.
W obszarze Katalogi wyjściowe wyświetli się obiekt rysowalny wektorowo i katalog, w którym będzie się on znajdować.
- Katalog zasobów – wybierz zbiór źródeł zasobów, do którego chcesz dodać obiekt rysowalny wektorowo:
Kliknij Zakończ.
Vector Asset Studio dodaje do projektu w folderze
app/src/main/res/drawable/plik XML definiujący obiekt rysowalny wektorowo. W widoku Androida okna Projekt możesz wyświetlić wygenerowany plik XML wektorowy w folderze drawable.Skompiluj projekt.
Jeśli minimalny poziom interfejsu API to Android 4.4 (poziom interfejsu API 20) lub starszy, a nie masz włączonej techniki AndroidX, Vector Asset Studio wygeneruje pliki PNG. W widoku plików projektu w oknie projektu możesz wyświetlić wygenerowane pliki PNG i XML w folderze
app/build/generated/res/pngs/debug/.Nie należy edytować wygenerowanych plików rastrowych, ale pracować z wektorowym plikiem XML. System kompilacji automatycznie regeneruje pliki rastrowe, gdy jest to potrzebne, więc nie musisz ich utrzymywać.
Odwoływanie się do zasobu wektorowego w Jetpack Compose
Po dodaniu zasobu do res/drawablefolderures/drawable za pomocą narzędzia Vector Asset Studio możesz się do niego odwoływać w kodzie.
W Jetpack Compose najczęstszym sposobem wyświetlania wektora jest użycie komponentu Icon lub Image.
Element kompozycyjny Icon to standardowy sposób wyświetlania małych, monochromatycznych zasobów. Zapewnia wbudowaną obsługę zasad Material Design, takich jak stosowanie dynamicznego barwienia na podstawie motywów Material 3 i automatyczna dostępność dzięki opisom treści.
Użyj interfejsu painterResource API, aby przekazać do komponentu zasoby wektorowe XML:
Icon( painter = painterResource(id = R.drawable.ic_speedometer), tint = MaterialTheme.colorScheme.primary, // Applies dynamic theme color contentDescription = "Current Speed", // Essential for accessibility )
W przypadku złożonych wektorów wielokolorowych użyj komponentu Image:
Image( painter = painterResource(id = R.drawable.ic_complex_vector), contentDescription = null // Decorative element )
W przypadku innych złożonych scenariuszy, takich jak dostosowywanie obrazu lub optymalizacja wydajności, zapoznaj się z artykułem Praca z obrazami. Informacje o animowaniu wektorów znajdziesz w artykule Animowane obrazy wektorowe w Compose.
Modyfikowanie kodu XML wygenerowanego przez Vector Asset Studio
Możesz modyfikować kod XML obiektu rysowalnego wektorowo, ale nie pliki PNG ani odpowiadający im kod XML wygenerowany w czasie kompilacji. Nie zalecamy jednak tego rozwiązania.
Podczas korzystania z techniki generowania PNG narzędzie Vector Asset Studio dba o to, aby obiekt rysowalny wektorowo i pliki PNG były zgodne, a plik manifestu zawierał odpowiedni kod. Jeśli dodasz kod, który nie jest obsługiwany na Androidzie 4.4 (interfejs API na poziomie 20) lub starszym, obrazy wektorowe i PNG mogą się różnić. Musisz też sprawdzić, czy plik manifestu zawiera kod obsługujący Twoje zmiany.
Aby zmodyfikować wektorowy plik XML, gdy nie używasz techniki AndroidX:
W oknie Project (Projekt) kliknij dwukrotnie wygenerowany plik XML wektora w folderze drawable.
Plik XML pojawi się w edytorze i w oknach Podgląd.
Rysunek 4. Plik XML wektorowy wyświetlany w edytorze kodu i oknie podglądu.
Edytuj kod XML na podstawie tego, co jest obsługiwane przez minimalny poziom interfejsu API:
Android 5.0 (poziom interfejsu API 21) i nowszy – Studio komponentów wektorowych obsługuje wszystkie elementy
DrawableiVectorDrawable. Możesz dodawać elementy XML i zmieniać wartości. W przypadku Jetpack Compose możesz wczytać obraz wektorowy doImageVector, aby go dostosować.Android 4.4 (poziom interfejsu API 20) i starszy – Vector Asset Studio obsługuje wszystkie elementy
Drawablei podzbiór elementówVectorDrawable. Listę znajdziesz w artykule Rozwiązania zapewniające zgodność wsteczną w przypadku rysunków wektorowych. Możesz zmieniać wartości w wygenerowanym kodzie i dodawać obsługiwane elementy XML.
Zbuduj projekt i sprawdź, czy obiekt rysowalny wektorowo i odpowiadające mu obrazy rastrowe wyglądają tak samo.
Pamiętaj, że wygenerowane pliki PNG mogą być wyświetlane inaczej w oknie Podgląd niż w aplikacji ze względu na różne silniki renderowania i zmiany wprowadzone w obiekcie rysowalnym wektorowo przed kompilacją. Jeśli dodasz kod do pliku XML wektora utworzonego przez Vector Asset Studio, wszystkie funkcje nieobsługiwane w Androidzie 4.4 (API na poziomie 20) i starszych wersjach nie będą widoczne w wygenerowanych plikach PNG. Dlatego po dodaniu kodu zawsze sprawdzaj, czy wygenerowane pliki PNG są zgodne z obiektem rysowalnym wektorowo. Aby to zrobić, możesz kliknąć dwukrotnie plik PNG w widoku plików projektu w oknie projektu. Lewy margines edytora kodu również wyświetla obraz PNG, gdy kod odwołuje się do obiektu rysowalnego, jak pokazano na rysunku 5.
Rysunek 5. Obraz PNG wyświetlany na lewym marginesie edytora kodu.
Usuwanie obiektu rysowalnego wektorowo z projektu
Aby usunąć obiekt rysowalny wektorowo z projektu:
W oknie Project (Projekt) usuń wygenerowany plik XML wektora, wybierając go i naciskając klawisz Delete (lub wybierając Edit > Delete).
Pojawi się okno Bezpieczne usuwanie.
Opcjonalnie wybierz opcje, aby sprawdzić, gdzie plik jest używany w projekcie, i kliknij OK.
Android Studio usunie plik z projektu i dysku. Jeśli jednak wyszukasz miejsca w projekcie, w których plik jest używany, i znajdziesz takie miejsca, możesz je wyświetlić i zdecydować, czy chcesz usunąć plik.
Wybierz Build (Kompilacja) > Clean Project (Wyczyść projekt).
Wszystkie automatycznie wygenerowane pliki PNG i XML odpowiadające usuniętemu obiektowi rysowalnemu wektorowo zostaną usunięte z projektu i z Dysku.
Dostarczanie aplikacji zawierającej rysunki wektorowe
Jeśli używasz techniki AndroidX lub minimalny poziom interfejsu API to Android 5.0 (poziom 21) lub wyższy, plik APK będzie zawierać wektorowe elementy rysunkowe dodane za pomocą narzędzia Vector Asset Studio. Te pliki APK będą mniejsze niż w przypadku, gdyby obrazy wektorowe zostały przekonwertowane na pliki PNG.
Jeśli minimalny poziom interfejsu API obejmuje Androida 4.4 (poziom interfejsu API 20) lub starszego, a w projekcie masz odpowiednie rysunki wektorowe i obrazy rastrowe, możesz dostarczać pliki APK na 2 sposoby:
- Utwórz 1 plik APK, który zawiera zarówno rysunki wektorowe, jak i odpowiednie reprezentacje rastrowe. To rozwiązanie jest najprostsze do wdrożenia.
- Utwórz osobne pakiety APK dla różnych poziomów interfejsu API. Jeśli nie uwzględnisz w pliku APK odpowiednich obrazów rastrowych dla Androida 5.0 (poziom 21 interfejsu API) i nowszych, rozmiar pliku APK może być znacznie mniejszy. Więcej informacji znajdziesz w artykule Obsługa wielu plików APK.
Obsługa plików PSD i ograniczenia
Vector Asset Studio nie obsługuje wszystkich funkcji plików PSD. Na liście poniżej znajdziesz podsumowanie obsługiwanych i nieobsługiwanych cech plików PSD oraz szczegóły konwersji.
Dokument
Obsługiwane:
- Tryb kolorów PSD: bitmapa, skala szarości, indeksowany, RGB, Lab lub CMYK.
- Głębia koloru 8, 16 lub 32 bity.
Szczegóły konwersji:
- Wymiary dokumentu PSD stają się wymiarami obiektu rysowalnego wektorowo i widocznego obszaru.
Nieobsługiwane:
- Tryb koloru PSD: duotone lub wielokanałowy.
Kształty
Obsługiwane:
- maski przycinające, jeśli podstawą przycinania jest inny kształt;
- Operacje na kształtach, w tym scalanie/dodawanie, przecinanie, odejmowanie i wykluczanie.
Nieobsługiwane:
Reguła wypełniania parzyste-nieparzyste używana przez kształty w programie Photoshop. W Androidzie 6.0 (poziom interfejsu API 23) i starszych wersjach wektorowe elementy rysunkowe obsługują tylko regułę wypełniania nonzero. W przypadku kształtów przecinających się ze sobą to ograniczenie może powodować różnice w renderowaniu między plikiem PSD a wynikowym obiektem rysowalnym wektorowo. Aby rozwiązać ten problem, dodaj
android:fillType="evenOdd"do kształtu w obiekcie rysowalnym wektorowo. Przykład:<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>
Kreski i wypełnienia
Obsługiwane:
- kreski, w tym kolor, krycie, szerokość, łączenie, zakończenie, kreski i wyrównanie;
- Wypełnienia i kreski w jednolitym kolorze.
- Kolory kreski i wypełnienia określone jako RGB, Lab lub CMYK.
Szczegóły konwersji:
- Jeśli linia jest kreskowana, przycięta za pomocą podstawy przycinania lub ma wyrównanie inne niż środkowe, Vector Asset Studio przekonwertuje ją na kształt wypełnienia w obiekcie rysowalnym wektorowo.
Nieobsługiwane:
- wypełnienia i kreski w kolorach innych niż jednolity, np. gradienty;
Nieprzezroczystość
Obsługiwane:
- Warstwy kształtu o przezroczystości 0.
Szczegóły konwersji:
- Vector Asset Studio mnoży nieprzezroczystość wypełnienia przez nieprzezroczystość warstwy, aby obliczyć wartość alfa wypełnienia.
- Narzędzie mnoży nieprzezroczystość podstawy przycinania (jeśli taka istnieje) przez wartość alfa wypełnienia, aby obliczyć końcową wartość alfa wypełnienia.
- Narzędzie mnoży przezroczystość konturu przez przezroczystość warstwy, aby obliczyć wartość alfa konturu.
- Narzędzie mnoży krycie podstawy przycinania (jeśli taka istnieje) przez wartość alfa obrysu, aby obliczyć końcową wartość alfa obrysu.
Warstwy
Obsługiwane:
- Każda widoczna warstwa kształtu.
Szczegóły konwersji:
- Vector Asset Studio zachowuje nazwy warstw w pliku obiektu rysowalnego wektorowo.
Nieobsługiwane:
- Efekty warstw.
- warstwy dostosowania i tekstu,
- Tryby mieszania (ignorowane).
Obsługa i ograniczenia dotyczące plików SVG
Vector Asset Studio nie obsługuje wszystkich funkcji plików SVG. W sekcji poniżej znajdziesz podsumowanie obsługiwanych i nieobsługiwanych funkcji podczas konwertowania pliku SVG na VectorDrawable oraz dodatkowe informacje o konwersji.
Obsługiwane funkcje
VectorDrawable obsługuje wszystkie funkcje Tiny SVG 1.2 z wyjątkiem tekstu.
Kształty
VectorDrawable obsługuje ścieżki SVG.
Narzędzie przekształca podstawowe kształty, takie jak koła, kwadraty i wielokąty, w ścieżki.
Transformacje
Narzędzie obsługuje macierze przekształceń i stosuje je bezpośrednio do ścieżek podrzędnych.
Grupy
Narzędzie obsługuje grupowanie elementów na potrzeby tłumaczenia, skalowania i obracania. Grupy nie obsługują właściwości przezroczystości.
Narzędzie stosuje też do ścieżek podrzędnych stylizację grupy lub krycie.
Wypełnienia i kreski
Ścieżki można wypełniać i obrysowywać za pomocą kolorów jednolitych lub gradientów (liniowych, radialnych lub kątowych). Obsługiwane są tylko pociągnięcia wyśrodkowane. Tryby mieszania nie są obsługiwane. Ścieżki przerywane nie są obsługiwane.
Maski
Narzędzie obsługuje jedną maskę przycinania na grupę.
Funkcje nieobsługiwane przez importer SVG
Wszystkie funkcje, których nie ma na liście w sekcji Obsługiwane funkcje, są nieobsługiwane. Nieobsługiwane funkcje to m.in.:
- Efekty filtrów: efekty takie jak cienie, rozmycia i macierz kolorów nie są obsługiwane.
- Tekst: zalecamy przekształcanie tekstu w kształty za pomocą innych narzędzi.
- Wypełnienia wzorem
Dodatkowe materiały
Więcej informacji o grafice wektorowej znajdziesz w tych materiałach: