Поиск…


Вступление

Как следует из названия, векторные чертежи основаны на векторной графике. Векторная графика - это способ описания графических элементов с использованием геометрических фигур. Это позволяет создавать чертежи на основе векторной графики XML. Теперь нет необходимости создавать изображение разного размера для mdpi, hdpi, xhdpi и т. Д. С помощью Vector Drawable вам нужно создать изображение только один раз в виде XML-файла, и вы можете масштабировать его для всех dpi и для разных устройств. Это также не экономит место, но также упрощает обслуживание.

параметры

параметр подробности
<vector> Используется для определения векторного вектора
<group> Определяет группу путей или подгрупп, а также информацию о преобразовании. Преобразования определяются в тех же координатах, что и окно просмотра. И преобразования применяются в порядке масштаба, затем вращаются, а затем переводятся.
<path> Определяет пути для рисования.
<clip-path> Определяет путь к текущему клипу. Обратите внимание, что путь клипа применяется только к текущей группе и ее дочерним элементам.

замечания

Обновите файл build.gradle .

dependencies {
    ...
   compile 'com.android.support:appcompat-v7:23.2.1'
}

Если вы используете v2.0 или выше плагина Gradle , добавьте следующий код.

// Gradle Plugin 2.0+  
 android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }

Если вы используете v1.5 или ниже плагина Gradle , добавьте следующий код.

// Gradle Plugin 1.5  
 android {  
   defaultConfig {  
     generatedDensities = []  
  }  

  // This is handled for you by the 2.0+ Gradle Plugin  
  aaptOptions {  
    additionalParameters "--no-version-vectors"  
  }  
 }

Подробнее читайте в разделе «Информация о поддержке Android 23.2» .

ПРИМЕЧАНИЕ. Даже с AppCompat векторные Drawables не будут работать вне вашего приложения в старых версиях Android. Например, вы не можете передавать векторные чертежи в качестве значков уведомлений, поскольку они обрабатываются системой, а не приложением. См. Этот ответ для обходного пути.

Пример использования VectorDrawable

Вот пример векторного актива, который мы фактически используем в AppCompat:

Рез / рисуем / 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>

С помощью этого чертежа пример объявления ImageView будет выглядеть следующим образом:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:srcCompat="@drawable/ic_search"/>

Вы также можете установить его во время выполнения:

ImageView iv = (ImageView) findViewById(...);
iv.setImageResource(R.drawable.ic_search);

Тот же атрибут и вызовы также работают для ImageButton .

Пример VectorDrawable xml

Вот простой VectorDrawable в этом файле 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>

Импорт SVG-файла в формате VectorDrawable

Вы можете импортировать SVG- файл в качестве VectorDrawable в Android Studio, выполните следующие действия:

«Щелкните правой кнопкой мыши» в папке res и выберите новый > Векторный объект .

введите описание изображения здесь

Выберите параметр « Локальный файл» и перейдите к вашему .svg-файлу. Измените параметры по своему вкусу и нажмите «Далее». Готово.

введите описание изображения здесь



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow