Android                
            VectorDrawable и AnimatedVectorDrawable
        
        
            
    Поиск…
Basic VectorDrawable
 VectorDrawable должен состоять как минимум из одного <path> определяющего форму 
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="M0,24 l12,-24 l12,24 z"/>
</vector>
 Это создаст черный треугольник:
С помощью 
 A <clip-path> определяет форму, которая действует как окно, позволяя только частям <path> показать, находятся ли они в форме <clip-path> и отключить остальные. 
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
    <clip-path
        android:name="square clip path"
        android:pathData="M6,6 h12 v12 h-12 z"/>
    <path
        android:name="triangle"
        android:fillColor="#FF000000"
        android:pathData="M0,24 l12,-24 l12,24 z"/>
</vector>
  В этом случае <path> создает черный треугольник, но <clip-path> определяет меньшую квадратную форму, позволяя показывать только часть треугольника: 
 теги 
 Тег <group> позволяет масштабировать, вращать и позицию одного или нескольких элементов VectorDrawable для настройки: 
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
    <path
        android:pathData="M0,0 h4 v4 h-4 z"
        android:fillColor="#FF000000"/>
    <group
        android:name="middle square group"
        android:translateX="10"
        android:translateY="10"
        android:rotation="45">
        <path
            android:pathData="M0,0 h4 v4 h-4 z"
            android:fillColor="#FF000000"/>
    </group>
    <group
        android:name="last square group"
        android:translateX="18"
        android:translateY="18"
        android:scaleX="1.5">
        <path
            android:pathData="M0,0 h4 v4 h-4 z"
            android:fillColor="#FF000000"/>
    </group>
</vector>
  В приведенном выше примере кода содержится три одинаковых <path> , описывающих черные квадраты. Первый квадрат не отрегулирован. Второй квадрат обернут тегом <group> который перемещает его и поворачивает на 45 °. Третий квадрат завернут в <group> который перемещает его и растягивает его горизонтально на 50%. Результат следующий: 
 Тег <group> может содержать несколько тегов <path> и <clip-path> . Он может даже содержать другую <group> . 
Основной анимированный вектор
 Для AnimatedVectorDrawable требуется как минимум 3 компонента: 
-  
VectorDrawableкоторый будет управляться -  
objectAnimatorкоторый определяет, какое свойство изменить и как -  Сам 
AnimatedVectorDrawable, который соединяетobjectAnimatorсVectorDrawableдля создания анимации 
Следующее создает треугольник, который переводит свой цвет с черного на красный.
 VectorDrawable , filename: triangle_vector_drawable.xml 
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
    <path
        android:name="triangle"
        android:fillColor="@android:color/black"
        android:pathData="M0,24 l12,-24 l12,24 z"/>
</vector>
  objectAnimator , filename: color_change_animator.xml 
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
    android:propertyName="fillColor"
    android:duration="2000"
    android:repeatCount="infinite"
    android:valueFrom="@android:color/black"
    android:valueTo="@android:color/holo_red_light"/>
  AnimatedVectorDrawable , filename: triangle_animated_vector.xml 
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/triangle_vector_drawable">
    <target
        android:animation="@animator/color_change_animator"
        android:name="triangle"/>
</animated-vector>
  Обратите внимание, что <target> указывает android:name="triangle" который соответствует <path> в VectorDrawable . VectorDrawable может содержать несколько элементов, а свойство android:name используется для определения того, какой элемент был нацелен. 
Результат:
Использование штрихов
Использование SVG-штриха облегчает создание векторного рисунка с унифицированной длиной хода в соответствии с принципами Material Design :
Согласованные мазки тяги являются ключом к объединению общего семейства значков системы. Поддерживайте ширину 2dp для всех инсультов, включая кривые, углы и внутренние и внешние штрихи.
Так, например, так вы можете создать знак «плюс», используя штрихи:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
    <path
        android:fillColor="#FF000000"
        android:strokeColor="#F000"
        android:strokeWidth="2"
        android:pathData="M12,0 V24 M0,12 H24" />
</vector>
 strokeColorопределяет цвет штриха.strokeWidthопределяет ширину (в dp) штриха (2dp в этом случае, как указано в рекомендациях).pathDataгде мы описываем наше изображение SVG:M12,0перемещает «курсор» в положение 12,0V24создает вертикальную линию в положение 12, 24
и т. д., см. документацию по SVG и этот полезный учебник «SVG Path» из w3schools, чтобы узнать больше о конкретных командах пути.
В результате мы получили это без излишеств плюс знак:
 Это особенно полезно для создания AnimatedVectorDrawable , так как теперь вы работаете с одним ударом с единой длиной, а не иначе сложным путем. 
Векторная совместимость через AppCompat
 Несколько предварительных build.gradle в build.gradle для векторов для работы вплоть до API 7 для VectorDrawables и API 13 для AnimatedVectorDrawables (с некоторыми предостережениями в настоящее время): 
//Build Tools has to be 24+
buildToolsVersion '24.0.0'
defaultConfig {
    vectorDrawables.useSupportLibrary = true
    generatedDensities = []
    aaptOptions {
        additionalParameters "--no-version-vectors"
    }
}
dependencies {
    compile 'com.android.support:appcompat-v7:24.1.1'
}
  В вашем layout.xml : 
<ImageView
    android:id="@+id/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    appCompat:src="@drawable/vector_drawable"
    android:contentDescription="@null" />
    
    
    
    
    



