Android
Vector Drawables
Szukaj…
Wprowadzenie
Parametry
Parametr | Detale |
---|---|
<vector> | Służy do definiowania wektora do rysowania |
<group> | Definiuje grupę ścieżek lub podgrup oraz informacje o transformacji. Transformacje są zdefiniowane w tych samych współrzędnych, co rzutnia. Transformacje są stosowane w kolejności skali, obracania, a następnie tłumaczenia. |
<path> | Definiuje ścieżki do narysowania. |
<clip-path> | Definiuje ścieżkę jako bieżący klip. Pamiętaj, że ścieżka klipu dotyczy tylko bieżącej grupy i jej dzieci. |
Uwagi
Zaktualizuj plik build.gradle .
dependencies {
...
compile 'com.android.support:appcompat-v7:23.2.1'
}
Jeśli używasz wersji 2.0 lub nowszej wtyczki Gradle , dodaj następujący kod.
// Gradle Plugin 2.0+
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
Jeśli używasz wersji 1.5 lub nowszej wtyczki Gradle , dodaj następujący kod.
// Gradle Plugin 1.5
android {
defaultConfig {
generatedDensities = []
}
// This is handled for you by the 2.0+ Gradle Plugin
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
Aby uzyskać więcej informacji, przeczytaj Bibliotekę pomocy technicznej systemu Android 23.2 .
UWAGA: Nawet w AppCompat Vector Drawables nie będzie działać poza aplikacją w starszych wersjach Androida. Na przykład nie można przekazywać rysunków wektorowych jako ikon powiadomień, ponieważ są one obsługiwane przez system, a nie przez aplikację. Zobacz tę odpowiedź w celu obejścia tego problemu.
Przykład użycia VectorDrawable
Oto przykładowy zasób wektorowy, którego faktycznie używamy w AppCompat:
res / drawable / ic_search.xml
<vector xmlns:android="..."
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0"
android:tint="?attr/colorControlNormal">
<path
android:pathData="..."
android:fillColor="@android:color/white"/>
</vector>
Korzystając z tego rysunku, przykładową deklaracją ImageView
byłoby:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_search"/>
Możesz również ustawić go w czasie wykonywania:
ImageView iv = (ImageView) findViewById(...);
iv.setImageResource(R.drawable.ic_search);
Ten sam atrybut i wywołania działają również dla ImageButton
.
Przykład xml VectorDrawable
Oto prosty VectorDrawable
w tym pliku vectordrawable.xml .
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="64dp"
android:width="64dp"
android:viewportHeight="600"
android:viewportWidth="600" >
<group
android:name="rotationGroup"
android:pivotX="300.0"
android:pivotY="300.0"
android:rotation="45.0" >
<path
android:name="v"
android:fillColor="#000000"
android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
</group>
</vector>
Importowanie pliku SVG jako VectorDrawable
Możesz zaimportować plik SVG jako VectorDrawable
w Android Studio, wykonaj następujące kroki:
Kliknij prawym przyciskiem myszy folder res
i wybierz nowy > Zasób wektorowy .
Wybierz opcję Plik lokalny i przejdź do pliku .svg. Zmień opcje według własnych upodobań i kliknij Dalej. Gotowy.