Обратная совместимость VectorDrawable и установка библиотек неофициальной поддержки

Медведь со мной, я новенький!
Я хочу использовать векторы в своем приложении для Android, и я хочу, чтобы мое приложение было обратно совместимым. Я нашел эту библиотеку поддержки, которая выглядит довольно круто! *
Поэтому я смущен тем, как я его «установлю». Он дает вам ссылку для загрузки файлов .pom, .aar, javadoc.jar и source.jar. Какой я должен скачать, и где (в какой папке) я должен поместить файл?
(Я использую Android Studio!)
* (Кто-нибудь знает другую библиотеку поддержки VectorDrawable? Мне было бы интересно услышать каждый опыт!)

Вот вариант, который работал для меня. Используйте эту библиотеку – https://github.com/wnafee/vector-compat (api 14+)

android { // use version 22 or higher buildToolsVersion "22.0.1" ... } dependencies { compile 'com.wnafee:vector-compat:1.0.5' ... } 

И создайте собственный класс ImageView, который использует векторный класс compat –

 public class SvgImageView extends ImageView { private Drawable icon; public SvgImageView(Context context, AttributeSet attrs) { super(context, attrs); TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.button_left, 0, 0); try { int resId = ta.getResourceId(R.styleable.button_left_b_icon, -1); if (resId != -1) { icon = ResourcesCompat.getDrawable(this.getContext(), resId); } } finally { ta.recycle(); } if (icon != null) { setImage(icon); } } public void setImage(Drawable icon) { SvgImageView.this.setImageDrawable(icon); } } 

Пример векторного изображения –

 <?xml version="1.0" encoding="utf-8"?> <vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:width="@dimen/logo_dimen" android:height="@dimen/logo_dimen" android:viewportWidth="@integer/view_port_dimen_logo" android:viewportHeight="@integer/view_port_dimen_logo" app:vc_viewportWidth="@integer/view_port_dimen_logo" app:vc_viewportHeight="@integer/view_port_dimen_logo"> <group android:name="rotationGroup" android:pivotX="0" android:pivotY="0" android:rotation="0"> <path android:name="v" android:fillColor="@color/white" android:pathData="m15.5,15.6c0,-1.5 2.8,-1.9 2.8,-5c0,-1.5 -0.7,-2.6 -1.8,-3.5h1.6l1.7,-1.1h-5c-1.7,0 -3.5,0.4 -4.8,1.6c-1,0.8 -1.6,2.1 -1.6,3.4c0,2.4 1.9,4.1 4.2,4.1c0.3,0 0.5,0 0.8,0c-0.1,0.3 -0.3,0.6 -0.3,1c0,0.7 0.3,1.2 0.8,1.8c-1.6,0.1 -3.4,0.3 -4.9,1.2c-1.1,0.7 -2,1.8 -2,3.2c0,0.6 0.2,1.1 0.4,1.6c1,1.7 3.2,2.2 5,2.2c2.3,0 4.9,-0.7 6.1,-2.8c0.4,-0.6 0.6,-1.3 0.6,-2.1c0.2,-3.5 -3.6,-4 -3.6,-5.6zm-1.7,-1.2c-2.2,0 -3.2,-2.8 -3.2,-4.6c0,-0.7 0.1,-1.4 0.6,-1.9c0.4,-0.6 1.1,-0.9 1.7,-0.9c2.2,0 3.2,3 3.2,4.8c0,0.7 -0.1,1.4 -0.6,1.9c-0.4,0.4 -1.1,0.7 -1.7,0.7zm0,10.5c-1.9,0 -4.5,-0.8 -4.5,-3.2c0,-2.5 2.9,-3.1 4.9,-3.1c0.2,0 0.4,0 0.6,0c1.2,0.8 2.8,1.8 2.8,3.4c-0.1,2.2 -2,2.9 -3.8,2.9zm9.7,-10.5v-2.6h-1.3v2.6h-2.5v1.3h2.5v2.6h1.3v-2.6h2.6v-1.3h-2.6l0,0z" app:vc_fillColor="@color/white" app:vc_pathData="m15.5,15.6c0,-1.5 2.8,-1.9 2.8,-5c0,-1.5 -0.7,-2.6 -1.8,-3.5h1.6l1.7,-1.1h-5c-1.7,0 -3.5,0.4 -4.8,1.6c-1,0.8 -1.6,2.1 -1.6,3.4c0,2.4 1.9,4.1 4.2,4.1c0.3,0 0.5,0 0.8,0c-0.1,0.3 -0.3,0.6 -0.3,1c0,0.7 0.3,1.2 0.8,1.8c-1.6,0.1 -3.4,0.3 -4.9,1.2c-1.1,0.7 -2,1.8 -2,3.2c0,0.6 0.2,1.1 0.4,1.6c1,1.7 3.2,2.2 5,2.2c2.3,0 4.9,-0.7 6.1,-2.8c0.4,-0.6 0.6,-1.3 0.6,-2.1c0.2,-3.5 -3.6,-4 -3.6,-5.6zm-1.7,-1.2c-2.2,0 -3.2,-2.8 -3.2,-4.6c0,-0.7 0.1,-1.4 0.6,-1.9c0.4,-0.6 1.1,-0.9 1.7,-0.9c2.2,0 3.2,3 3.2,4.8c0,0.7 -0.1,1.4 -0.6,1.9c-0.4,0.4 -1.1,0.7 -1.7,0.7zm0,10.5c-1.9,0 -4.5,-0.8 -4.5,-3.2c0,-2.5 2.9,-3.1 4.9,-3.1c0.2,0 0.4,0 0.6,0c1.2,0.8 2.8,1.8 2.8,3.4c-0.1,2.2 -2,2.9 -3.8,2.9zm9.7,-10.5v-2.6h-1.3v2.6h-2.5v1.3h2.5v2.6h1.3v-2.6h2.6v-1.3h-2.6l0,0z" /> </group> </vector> 

Пример –

 <packagename.SvgImageView app:b_icon="@drawable/google_logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView3" /> 

Google только что анонсировал Android Studio 1.4 с обратной совместимостью для векторных чертежей. Он будет генерировать .png файлы в соответствующих размерах для разных плотностей экрана для устройств с предварительным Lollipop и будет использовать векторный формат для Lollipop и up. См. Эту ссылку: http://android-developers.blogspot.com/2015/09/android-studio-14.html

Просто убедитесь, что версия Gradle Build 1.4.0 или выше!

Спасибо за людей, которые портировали эту библиотеку до Google!

Отличная новость заключается в том, что google выпустила Android Support Library 23.2 Поддержка векторных чертежей и анимационных векторных чертежей!

Заметка:

– Векторные изображения полностью назад к API 7 (Android 2.1 Eclair).

– Анимированные векторы немного ограничены, и только в 11 API

Лучшее решение, которое я нашел, это BetterVectorDrawable lib вместе с SVG to VectorDrawable Converter .

BetterVectorDrawable – это реализация VectorDrawable для Android 4.0+ с настраиваемым снижением поведения на Android 5.0+. Библиотека может быть добавлена ​​в проект только с одной строкой (см. Readme).

SVG to VectorDrawable Converter – пакетный конвертер изображений SVG в файлы ресурсов XML VectorDrawable. Онлайн-версия здесь .

Ссылки указывают на readmes, которые предоставляют достаточную информацию о том, как использовать lib и конвертер.